I have a couple of functions that perform HTTP POST/GET/HEAD requests.
For the POST request I use this:
http:request(post, {Url, [], ContentType, Body}, [], []).
While for the HEAD/GET I use:
http:request(Method, {Url, []}, [], [])
How can I write this two calls in a unique one? POST request h开发者_开发问答as those two additional variables with respect to GET/HEAD request. I tried with empty lists but I got:
** exception error: no function clause matching
Thank you very much.
To use the call to httpc
only once, you need to extract the Request
tuple from the call because that's what's unique between the methods as you use them:
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, [], []).
Body = "name=<<name>>&pass=<<pass>>",
httpc:request(post, {Url, [], "application/x-www-form-urlencoded", Body}, [], []).
精彩评论