The HTTP client for Elixir.
TheHTTPoison
module can be used to issue HTTP requests and parse HTTP responses to arbitrary URLs.
iex>HTTPoison.get!("https://api.github.com")%HTTPoison.Response{status_code:200,headers:[{"content-type","application/json"}],body:"{...}"}
It's very common to use HTTPoison in order to wrap APIs, which is when theHTTPoison.Base
module shines. Visit the documentation forHTTPoison.Base
for more information.
Under the hood, theHTTPoison
module just usesHTTPoison.Base
(asdescribed in the documentation forHTTPoison.Base
) without overriding anydefault function.
Seerequest/5
for more details on how to issue HTTP requests
Issues a DELETE request to the given url.
Issues a DELETE request to the given url, raising an exception in case offailure.
Issues a GET request to the given url.
Issues a GET request to the given url, raising an exception in case offailure.
Issues a HEAD request to the given url.
Issues a HEAD request to the given url, raising an exception in case offailure.
Issues an OPTIONS request to the given url.
Issues a OPTIONS request to the given url, raising an exception in case offailure.
Issues a PATCH request to the given url.
Issues a PATCH request to the given url, raising an exception in case offailure.
Issues a POST request to the given url.
Issues a POST request to the given url, raising an exception in case offailure.
Callback implementation forHTTPoison.Base.process_headers/1
.
Callback implementation forHTTPoison.Base.process_request_body/1
.
Callback implementation forHTTPoison.Base.process_request_headers/1
.
Callback implementation forHTTPoison.Base.process_request_options/1
.
Callback implementation forHTTPoison.Base.process_request_params/1
.
Callback implementation forHTTPoison.Base.process_request_url/1
.
Callback implementation forHTTPoison.Base.process_response/1
.
Callback implementation forHTTPoison.Base.process_response_body/1
.
Callback implementation forHTTPoison.Base.process_response_chunk/1
.
Callback implementation forHTTPoison.Base.process_response_headers/1
.
Callback implementation forHTTPoison.Base.process_response_status_code/1
.
Callback implementation forHTTPoison.Base.process_status_code/1
.
Callback implementation forHTTPoison.Base.process_url/1
.
Issues a PUT request to the given url.
Issues a PUT request to the given url, raising an exception in case offailure.
Issues an HTTP request using anHTTPoison.Request
struct.
Issues an HTTP request with the given method to the given url.
Issues an HTTP request anHTTPoison.Request
struct.exception in case of failure.
Issues an HTTP request with the given method to the given url, raising anexception in case of failure.
Starts HTTPoison and its dependencies.
Requests the next message to be streamed for a givenHTTPoison.AsyncResponse
.
body() ::HTTPoison.Base.body()
headers() ::HTTPoison.Base.headers()
method() ::HTTPoison.Base.method()
options() ::HTTPoison.Base.options()
params() ::HTTPoison.Base.params()
request() ::HTTPoison.Base.request()
url() ::HTTPoison.Base.url()
delete(binary(),headers(),Keyword.t()) :: {:ok,HTTPoison.Response.t() |HTTPoison.AsyncResponse.t() |HTTPoison.MaybeRedirect.t()} | {:error,HTTPoison.Error.t()}
Issues a DELETE request to the given url.
Returns{:ok, response}
if the request is successful,{:error, reason}
otherwise.
Seerequest/5
for more detailed information.
delete!(binary(),headers(),Keyword.t()) ::HTTPoison.Response.t() |HTTPoison.AsyncResponse.t() |HTTPoison.MaybeRedirect.t()
Issues a DELETE request to the given url, raising an exception in case offailure.
If the request does not fail, the response is returned.
Seerequest!/5
for more detailed information.
get(binary(),headers(),Keyword.t()) :: {:ok,HTTPoison.Response.t() |HTTPoison.AsyncResponse.t()} | {:error,HTTPoison.Error.t()}
Issues a GET request to the given url.
Returns{:ok, response}
if the request is successful,{:error, reason}
otherwise.
Seerequest/5
for more detailed information.
get!(binary(),headers(),Keyword.t()) ::HTTPoison.Response.t() |HTTPoison.AsyncResponse.t()
Issues a GET request to the given url, raising an exception in case offailure.
If the request does not fail, the response is returned.
Seerequest!/5
for more detailed information.
head(binary(),headers(),Keyword.t()) :: {:ok,HTTPoison.Response.t() |HTTPoison.AsyncResponse.t()} | {:error,HTTPoison.Error.t()}
Issues a HEAD request to the given url.
Returns{:ok, response}
if the request is successful,{:error, reason}
otherwise.
Seerequest/5
for more detailed information.
head!(binary(),headers(),Keyword.t()) ::HTTPoison.Response.t() |HTTPoison.AsyncResponse.t()
Issues a HEAD request to the given url, raising an exception in case offailure.
If the request does not fail, the response is returned.
Seerequest!/5
for more detailed information.
options(binary(),headers(),Keyword.t()) :: {:ok,HTTPoison.Response.t() |HTTPoison.AsyncResponse.t() |HTTPoison.MaybeRedirect.t()} | {:error,HTTPoison.Error.t()}
Issues an OPTIONS request to the given url.
Returns{:ok, response}
if the request is successful,{:error, reason}
otherwise.
Seerequest/5
for more detailed information.
options!(binary(),headers(),Keyword.t()) ::HTTPoison.Response.t() |HTTPoison.AsyncResponse.t() |HTTPoison.MaybeRedirect.t()
Issues a OPTIONS request to the given url, raising an exception in case offailure.
If the request does not fail, the response is returned.
Seerequest!/5
for more detailed information.
patch(binary(),any(),headers(),Keyword.t()) :: {:ok,HTTPoison.Response.t() |HTTPoison.AsyncResponse.t() |HTTPoison.MaybeRedirect.t()} | {:error,HTTPoison.Error.t()}
Issues a PATCH request to the given url.
Returns{:ok, response}
if the request is successful,{:error, reason}
otherwise.
Seerequest/5
for more detailed information.
patch!(binary(),any(),headers(),Keyword.t()) ::HTTPoison.Response.t() |HTTPoison.AsyncResponse.t() |HTTPoison.MaybeRedirect.t()
Issues a PATCH request to the given url, raising an exception in case offailure.
If the request does not fail, the response is returned.
Seerequest!/5
for more detailed information.
post(binary(),any(),headers(),Keyword.t()) :: {:ok,HTTPoison.Response.t() |HTTPoison.AsyncResponse.t() |HTTPoison.MaybeRedirect.t()} | {:error,HTTPoison.Error.t()}
Issues a POST request to the given url.
Returns{:ok, response}
if the request is successful,{:error, reason}
otherwise.
Seerequest/5
for more detailed information.
post!(binary(),any(),headers(),Keyword.t()) ::HTTPoison.Response.t() |HTTPoison.AsyncResponse.t() |HTTPoison.MaybeRedirect.t()
Issues a POST request to the given url, raising an exception in case offailure.
If the request does not fail, the response is returned.
Seerequest!/5
for more detailed information.
Callback implementation forHTTPoison.Base.process_headers/1
.
Callback implementation forHTTPoison.Base.process_request_body/1
.
Callback implementation forHTTPoison.Base.process_request_headers/1
.
Callback implementation forHTTPoison.Base.process_request_options/1
.
Callback implementation forHTTPoison.Base.process_request_params/1
.
Callback implementation forHTTPoison.Base.process_request_url/1
.
process_response(HTTPoison.Base.response()) ::any()
Callback implementation forHTTPoison.Base.process_response/1
.
Callback implementation forHTTPoison.Base.process_response_body/1
.
Callback implementation forHTTPoison.Base.process_response_chunk/1
.
Callback implementation forHTTPoison.Base.process_response_headers/1
.
Callback implementation forHTTPoison.Base.process_response_status_code/1
.
Callback implementation forHTTPoison.Base.process_status_code/1
.
Callback implementation forHTTPoison.Base.process_url/1
.
put(binary(),any(),headers(),Keyword.t()) :: {:ok,HTTPoison.Response.t() |HTTPoison.AsyncResponse.t() |HTTPoison.MaybeRedirect.t()} | {:error,HTTPoison.Error.t()}
Issues a PUT request to the given url.
Returns{:ok, response}
if the request is successful,{:error, reason}
otherwise.
Seerequest/5
for more detailed information.
put!(binary(),any(),headers(),Keyword.t()) ::HTTPoison.Response.t() |HTTPoison.AsyncResponse.t() |HTTPoison.MaybeRedirect.t()
Issues a PUT request to the given url, raising an exception in case offailure.
If the request does not fail, the response is returned.
Seerequest!/5
for more detailed information.
request(HTTPoison.Request.t()) :: {:ok,HTTPoison.Response.t() |HTTPoison.AsyncResponse.t() |HTTPoison.MaybeRedirect.t()} | {:error,HTTPoison.Error.t()}
Issues an HTTP request using anHTTPoison.Request
struct.
This function returns{:ok, response}
,{:ok, async_response}
, or{:ok, maybe_redirect}
if the request is successful,{:error, reason}
otherwise.
If the option:follow_redirect
is given, HTTP redirects are automatically follow ifthe method is set to:get
or:head
and the response'sstatus_code
is301
,302
or307
.
If the method is set to:post
, then the onlystatus_code
that get's automaticallyfollowed is303
.
If any other method orstatus_code
is returned, then this function returns areturns a{:ok, %HTTPoison.MaybeRedirect{}}
containing theredirect_url
for you tore-request with the method set to:get
.
request=%HTTPoison.Request{method::post,url:"https://my.website.com",body:"{\"foo\": 3}",headers:[{"Accept","application/json"}]}request(request)
request(method(),binary(),any(),headers(),Keyword.t()) :: {:ok,HTTPoison.Response.t() |HTTPoison.AsyncResponse.t() |HTTPoison.MaybeRedirect.t()} | {:error,HTTPoison.Error.t()}
Issues an HTTP request with the given method to the given url.
This function is usually used indirectly byget/3
,post/4
,put/4
, etc
Args:
method
- HTTP method as an atom (:get
,:head
,:post
,:put
,:delete
, etc.)url
- target url as a binary string or char listbody
- request body. See more belowheaders
- HTTP headers as an orddict (e.g.,[{"Accept", "application/json"}]
)options
- Keyword list of optionsBody: see typeHTTPoison.Request
Options: see typeHTTPoison.Request
This function returns{:ok, response}
,{:ok, async_response}
, or{:ok, maybe_redirect}
if the request is successful,{:error, reason}
otherwise.
If the option:follow_redirect
is given, HTTP redirects are automatically follow ifthe method is set to:get
or:head
and the response'sstatus_code
is301
,302
or307
.
If the method is set to:post
, then the onlystatus_code
that get's automaticallyfollowed is303
.
If any other method orstatus_code
is returned, then this function returns areturns a{:ok, %HTTPoison.MaybeRedirect{}}
containing theredirect_url
for you tore-request with the method set to:get
.
request(:post,"https://my.website.com","{\"foo\": 3}",[{"Accept","application/json"}])
request!(HTTPoison.Request.t()) ::HTTPoison.Response.t() |HTTPoison.AsyncResponse.t() |HTTPoison.MaybeRedirect.t()
Issues an HTTP request anHTTPoison.Request
struct.exception in case of failure.
request!/1
works exactly likerequest/1
but it returns just theresponse in case of a successful request, raising an exception in case therequest fails.
request!(method(),binary(),any(),headers(),Keyword.t()) ::HTTPoison.Response.t() |HTTPoison.AsyncResponse.t() |HTTPoison.MaybeRedirect.t()
Issues an HTTP request with the given method to the given url, raising anexception in case of failure.
request!/5
works exactly likerequest/5
but it returns just theresponse in case of a successful request, raising an exception in case therequest fails.
Starts HTTPoison and its dependencies.
stream_next(HTTPoison.AsyncResponse.t()) :: {:ok,HTTPoison.AsyncResponse.t()} | {:error,HTTPoison.Error.t()}
Requests the next message to be streamed for a givenHTTPoison.AsyncResponse
.
Seerequest!/5
for more detailed information.