HTTPoison v1.4.0 HTTPoison

The HTTP client for Elixir.

The HTTPoison 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 the HTTPoison.Base module shines. Visit the documentation for HTTPoison.Base for more information.

Under the hood, the HTTPoison module just uses HTTPoison.Base (as described in the documentation for HTTPoison.Base) without overriding any default function.

See request/5 for more details on how to issue HTTP requests

Summary

Functions

Issues a DELETE request to the given url

Issues a DELETE request to the given url, raising an exception in case of failure

Issues a GET request to the given url

Issues a GET request to the given url, raising an exception in case of failure

Issues a HEAD request to the given url

Issues a HEAD request to the given url, raising an exception in case of failure

Issues an OPTIONS request to the given url

Issues a OPTIONS request to the given url, raising an exception in case of failure

Issues a PATCH request to the given url

Issues a PATCH request to the given url, raising an exception in case of failure

Issues a POST request to the given url

Issues a POST request to the given url, raising an exception in case of failure

Callback implementation for HTTPoison.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 of failure

Issues an HTTP request using a Request struct

Issues an HTTP request with the given method to the given url

Issues an HTTP request with the given method to the given url, raising an exception in case of failure

Starts HTTPoison and its dependencies

Requests the next message to be streamed for a given HTTPoison.AsyncResponse

Types

Functions

delete(url, headers \\ [], options \\ [])

Issues a DELETE request to the given url.

Returns {:ok, response} if the request is successful, {:error, reason} otherwise.

See request/5 for more detailed information.

delete!(url, headers \\ [], options \\ [])

Issues a DELETE request to the given url, raising an exception in case of failure.

If the request does not fail, the response is returned.

See request!/5 for more detailed information.

get(url, headers \\ [], options \\ [])

Issues a GET request to the given url.

Returns {:ok, response} if the request is successful, {:error, reason} otherwise.

See request/5 for more detailed information.

get!(url, headers \\ [], options \\ [])

Issues a GET request to the given url, raising an exception in case of failure.

If the request does not fail, the response is returned.

See request!/5 for more detailed information.

head(url, headers \\ [], options \\ [])

Issues a HEAD request to the given url.

Returns {:ok, response} if the request is successful, {:error, reason} otherwise.

See request/5 for more detailed information.

head!(url, headers \\ [], options \\ [])

Issues a HEAD request to the given url, raising an exception in case of failure.

If the request does not fail, the response is returned.

See request!/5 for more detailed information.

options(url, headers \\ [], options \\ [])

Issues an OPTIONS request to the given url.

Returns {:ok, response} if the request is successful, {:error, reason} otherwise.

See request/5 for more detailed information.

options!(url, headers \\ [], options \\ [])

Issues a OPTIONS request to the given url, raising an exception in case of failure.

If the request does not fail, the response is returned.

See request!/5 for more detailed information.

patch(url, body, headers \\ [], options \\ [])

Issues a PATCH request to the given url.

Returns {:ok, response} if the request is successful, {:error, reason} otherwise.

See request/5 for more detailed information.

patch!(url, body, headers \\ [], options \\ [])

Issues a PATCH request to the given url, raising an exception in case of failure.

If the request does not fail, the response is returned.

See request!/5 for more detailed information.

post(url, body, headers \\ [], options \\ [])

Issues a POST request to the given url.

Returns {:ok, response} if the request is successful, {:error, reason} otherwise.

See request/5 for more detailed information.

post!(url, body, headers \\ [], options \\ [])

Issues a POST request to the given url, raising an exception in case of failure.

If the request does not fail, the response is returned.

See request!/5 for more detailed information.

process_headers(headers)
process_headers(list) :: any

Callback implementation for HTTPoison.Base.process_headers/1.

process_request_body(body)
process_request_body(body) :: body

Callback implementation for HTTPoison.Base.process_request_body/1.

process_request_headers(headers)
process_request_headers(headers) :: headers

Callback implementation for HTTPoison.Base.process_request_headers/1.

process_request_options(options)
process_request_options(options) :: options

Callback implementation for HTTPoison.Base.process_request_options/1.

process_request_params(params)
process_request_params(params) :: params

Callback implementation for HTTPoison.Base.process_request_params/1.

process_request_url(url)
process_request_url(url) :: url

Callback implementation for HTTPoison.Base.process_request_url/1.

process_response(response)
process_response(response) :: any

Callback implementation for HTTPoison.Base.process_response/1.

process_response_body(body)
process_response_body(binary) :: any

Callback implementation for HTTPoison.Base.process_response_body/1.

process_response_chunk(chunk)
process_response_chunk(binary) :: any

Callback implementation for HTTPoison.Base.process_response_chunk/1.

process_response_headers(headers)
process_response_headers(list) :: any

Callback implementation for HTTPoison.Base.process_response_headers/1.

process_response_status_code(status_code)
process_response_status_code(integer) :: any

Callback implementation for HTTPoison.Base.process_response_status_code/1.

process_status_code(status_code)
process_status_code(integer) :: any

Callback implementation for HTTPoison.Base.process_status_code/1.

process_url(url)
process_url(url) :: url

Callback implementation for HTTPoison.Base.process_url/1.

put(url, body \\ "", headers \\ [], options \\ [])

Issues a PUT request to the given url.

Returns {:ok, response} if the request is successful, {:error, reason} otherwise.

See request/5 for more detailed information.

put!(url, body \\ "", headers \\ [], options \\ [])

Issues a PUT request to the given url, raising an exception in case of failure.

If the request does not fail, the response is returned.

See request!/5 for more detailed information.

Issues an HTTP request using a Request struct.

This function returns {:ok, response} or {:ok, async_response} if the request is successful, {:error, reason} otherwise.

Examples

request = %HTTPoison.Request{
  method: :post,
  url: "https://my.website.com",
  body: "{\"foo\": 3}",
  headers: [{"Accept", "application/json"}]
}

request(request)
request(method, url, body \\ "", headers \\ [], options \\ [])
request(atom, binary, any, headers, Keyword.t) ::
  {:ok, HTTPoison.Response.t | HTTPoison.AsyncResponse.t} |
  {:error, HTTPoison.Error.t}

Issues an HTTP request with the given method to the given url.

This function is usually used indirectly by get/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 list
  • body - request body. See more below
  • headers - HTTP headers as an orddict (e.g., [{"Accept", "application/json"}])
  • options - Keyword list of options

Body: see type HTTPoison.Request

Options: see type HTTPoison.Request

This function returns {:ok, response} or {:ok, async_response} if the request is successful, {:error, reason} otherwise.

Examples

request(:post, "https://my.website.com", "{\"foo\": 3}", [{"Accept", "application/json"}])
request!(method, url, body \\ "", headers \\ [], options \\ [])

Issues an HTTP request with the given method to the given url, raising an exception in case of failure.

request!/5 works exactly like request/5 but it returns just the response in case of a successful request, raising an exception in case the request fails.

start()

Starts HTTPoison and its dependencies.

stream_next(resp)

Requests the next message to be streamed for a given HTTPoison.AsyncResponse.

See request!/5 for more detailed information.