http post request erlang - PullRequest
       6

http post request erlang

5 голосов
/ 30 мая 2011

У меня есть пара функций, которые выполняют запросы 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 ]

9 голосов
/ 30 мая 2011

Чтобы использовать вызов к 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, [], []).
2 голосов
/ 03 декабря 2013
Body = "name=<<name>>&pass=<<pass>>",
httpc:request(post, {Url, [], "application/x-www-form-urlencoded", Body}, [], []).
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...