Настройка заголовков в почтовом запросе HTTPC в Erlang

Я пытаюсь запустить почтовый запрос HTTPC от Erlang:

httpc:request(post, {"https://android.googleapis.com/gcm/send",[{"Authorization","key=api_key_generated_at_googleaccount"}],[{"Content-Type","application/json"}],Body},[],[])

Но каждый раз, когда я запускаю этот запрос, моя оболочка Erlang зависает. Есть ли проблема в запросе?


person Geek    schedule 03.02.2015    source источник


Ответы (1)


Я думаю, вы немного перепутали аргументы http:request/4 в руководстве для httpc:

request(Method, Request, HTTPOptions, Options)

   Request          = request()
   request()        = {url(), headers()} |
                      {url(), headers(), content_type(), body()}
   content_type()   = string()

Выше вы можете видеть, что content_type() должно быть string(), а не [{string(),string()}].

Легче читать, если вы поместите все request() в переменную:

10> inets:start().
ok
11> ssl:start().
ok
12> Body = "some cool json",
12> Request = {"https://android.googleapis.com/gcm/send", [{"Authorization","key=blabla"}], "application/json", Body},
12> httpc:request(post, Request, [], []).
{ok,{{"HTTP/1.1",401,"Unauthorized"},
     [{"cache-control","private, max-age=0"},
      {"date","Tue, 03 Feb 2015 07:19:07 GMT"},
      {"accept-ranges","none"},
      {"server","GSE"},
      {"vary","Accept-Encoding"},
      {"content-length","147"},
      {"content-type","text/html; charset=UTF-8"},
      {"expires","Tue, 03 Feb 2015 07:19:07 GMT"},
      {"x-content-type-options","nosniff"},
      {"x-frame-options","SAMEORIGIN"},
      {"x-xss-protection","1; mode=block"},
      {"alternate-protocol","443:quic,p=0.02"}],
     "<HTML>\n<HEAD>\n<TITLE>Unauthorized</TITLE>\n</HEAD>\n<BODY BGCOLOR=\"#FFFFFF\" TEXT=\"#000000\">\n<H1>Unauthorized</H1>\n<H2>Error 401</H2>\n</BODY>\n</HTML>\n"}}
person emil    schedule 03.02.2015