Gee*_*eek 5 erlang post ejabberd
我正在尝试从 Erlang 发出 HTTPC post 请求:
httpc:request(post, {"https://android.googleapis.com/gcm/send",[{"Authorization","key=api_key_generated_at_googleaccount"}],[{"Content-Type","application/json"}],Body},[],[])
Run Code Online (Sandbox Code Playgroud)
但每次我触发这个请求时,我的 Erlang shell 都会挂起。请求有问题吗?
http:request/4我认为您在手册中混淆了一些参数httpc:
request(Method, Request, HTTPOptions, Options)
Request = request()
request() = {url(), headers()} |
{url(), headers(), content_type(), body()}
content_type() = string()
Run Code Online (Sandbox Code Playgroud)
上面你可以看到content_type()应该是 astring()而不是[{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"}}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6858 次 |
| 最近记录: |