http发布请求erlang

时间:2011-05-30 07:38:03

标签: http erlang

我有几个执行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

非常感谢

2 个答案:

答案 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}, [], []).