我有几个执行HTTP POST / GET / HEAD请求的函数。
对于POST请求,我使用:
http:request(post, {Url, [], ContentType, Body}, [], []).
对于我使用的HEAD / GET:
http:request(Method, {Url, []}, [], [])
如何以独特的方式编写这两个电话? POST请求具有与GET / HEAD请求相关的那两个附加变量。我尝试了空列表,但我得到了:
** exception error: no function clause matching
非常感谢
答案 0 :(得分:9)
要仅使用httpc
一次调用,您需要从调用中提取Request
元组,因为这是在使用它们时方法之间的唯一性:
post(URL, ContentType, Body) -> request(post, {URL, [], ContentType, Body}).
get(URL) -> request(get, {URL, []}).
head(URL) -> request(head, {URL, []}).
request(Method, Request) ->
httpc:request(Method, Request, [], []).
答案 1 :(得分:2)
Body = "name=<<name>>&pass=<<pass>>",
httpc:request(post, {Url, [], "application/x-www-form-urlencoded", Body}, [], []).