我正在尝试从Erlang发出HTTPC post请求:
httpc:request(post, {"https://android.googleapis.com/gcm/send",[{"Authorization","key=api_key_generated_at_googleaccount"}],[{"Content-Type","application/json"}],Body},[],[])
但是每次我发出这个请求的时候我的Erlang shell就挂了。请求中有什么问题吗?
x3naxklr1#
I think you mixed up the arguments to http:request/4 a bit, in the manual for httpc :
http:request/4
httpc
request(Method, Request, HTTPOptions, Options) Request = request() request() = {url(), headers()} | {url(), headers(), content_type(), body()} content_type() = string()
Above you can see content_type() should be a string() and not [{string(),string()}] .It is easier if to read if you put the whole request() into a variable:
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"}}
1条答案
按热度按时间x3naxklr1#
I think you mixed up the arguments to
http:request/4
a bit, in the manual forhttpc
:Above you can see
content_type()
should be astring()
and not[{string(),string()}]
.It is easier if to read if you put the whole
request()
into a variable: