2015-02-03 1 views
1

httpc 요청을 실행하려고합니다.json 배열 작성

httpc:request(post, {Baseurl,[{"Authorization",ApiKey2}],<<"application/json">>,Body},[],[]). 

하지만 난 아래와 같습니다 몸을 공식화하려고 통과 할 때 : - : mod_gcm_apns : send_gcm_msg ("GJHGHJ") - 그것은 나에게 같은 오류를 제공

Body = lists:flatten(mochijson2:encode({struct,[{"registration_ids",[{array, "APA91bE445JOlMvdShgQAJIxuDcBQos7olZi82lWQ82W9HHTR0uxOILvDYo9F5827BhU0qpBi9xpBqN1BNciWogiWxenI7_au7Z42o6eqcFSkoAs-0tVJzVG3lju54PXRyVS1tmZNhjsQDCYwnHJH6m6j6h1vSPBZl6lt3j8tu44Euq3PyISKBM"}]}, 
    {"data",[{array,[{struct, [{"message","HGHJG"}]}]}]} 
    ]})). 

.

{error,{"HTTP/1.1", 
    "Field \"data\" must be a JSON array: [[{\"message\":[72,71,72,74,71]}]]\n"}} 

많은 시도했지만 해결책을 찾을 수 없습니다.

mdaguete

% Create Json struct 
    Body = lists:flatten(mochijson2:encode(
{struct,[ 
{<<"registration_ids">>,[<<"APA91bE445JOlMvdShgQAJIxuDcBQos7olZi82lWQ82W9HHTR0uxOILvDYo9F5827BhU0qpBi9xpBqN1BNciWogiWxenI7_au7Z42o6eqcFSkoAs-0tVJzVG3lju54PXRyVS1tmZNhjsQDCYwnHJH6m6j6h1vSPBZl6lt3j8tu44Euq3PyISKBM">>]}, 
{<<"data">>,[ 
    {struct, [ 
     {<<"message">>,<<"HGHJG">>} 
     ]} 
    ]} 
]})), 

실행 라인으로 제안 변경 후 : -

mod_gcm2:send_gcm_msg("JKJ"). 

를하지만 다음과 같은 오류를주고있다 :

{error,{"HTTP/1.1", 
    "JSON_PARSING_ERROR: Unexpected token END OF FILE at position 27.\n"}} 

이 친절하게 해결책을 제안한다.

+0

@emil : -no 우리는 기본적으로 Google API 배열에 json 배열을 보내야합니다. 그래서 인코딩하는 이유는 – Geek

답변

1

바디 변수 : -

Body = lists:flatten(mochijson2:encode(
{ struct,[ 
{ registration_ids, 
        ['KEY']}, 
{ data,[{ 
      message,[Message] 
} 

이 구글 GCM의 API와 함께 일 최종 JSON 패킷입니다.

1

일반적으로 문제를 해결하는 가장 빠르고 가장 빠른 방법은 문서를 읽는 것입니다.

Bob Ippolito의 우수한 mochijson2 라이브러리를 사용하고 있습니다. read the source 코드 헤더가 있으면 jlson 용어로 올바른 형식을 읽을 수 있습니다.

{struct,[ 
{<<"registration_ids">>,[<<"APA91bE445JOlMvdShgQAJIxuDcBQos7olZi82lWQ82W9HHTR0uxOILvDYo9F5827BhU0qpBi9xpBqN1BNciWogiWxenI7_au7Z42o6eqcFSkoAs-0tVJzVG3lju54PXRyVS1tmZNhjsQDCYwnHJH6m6j6h1vSPBZl6lt3j8tu44Euq3PyISKBM">>]}, 
{<<"data">>,[ 
     {struct, [ 
      {<<"message">>,<<"HGHJG">>} 
     ]} 
]} 
]} 

감사합니다 :

수 귀하의 JSON에 대한 올바른 형식은 (당신이 예상 결과를 설명하지 않았다).

+0

입니다. 편집 된 질문을 참조하십시오. 아직 오류가 발생했습니다. 도움에 감사드립니다. – Geek