2015-02-03 2 views
1

Я пытаюсь запустить запрос httpc.Формулировка json array

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

Но если я прохожу попытаться сформулировать орган, который приводится ниже: -

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

он дает мне ошибку так: - : mod_gcm_apns send_gcm_msg ("GJHGHJ").

{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: -но мы в основном должны отправлять массив json в google api, поэтому мы кодируем – Geek

ответ

1

Variable тела: -

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

Это последний JSON Packet, который работал с Google GCM API.

1

Обычно лучшим и быстрым способом решения проблемы является чтение документа.

Вы используете библиотеку excelent mochijson2 от Bob Ippolito, если вы заголовок кода read the source, вы можете прочитать правильный формат, чтобы выразить json в терминах erlang.

Правильный формат для JSON может быть (вы не объяснить ожидаемый результат):

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

С уважением.

+0

, пожалуйста, обратитесь к отредактированному вопросу. Все еще получаю некоторую ошибку. Спасибо за помощь – Geek

Смежные вопросы