httpotion v3.1.0 HTTPotion View Source

The HTTP client for Elixir.

This module contains a basic general-purpose HTTP client. Everything in this module is created with use HTTPotion.Base. You can create your own customized client modules (see the README).

Link to this section Summary

Types

List of options to all request functions

Result returned from request/3, get/2, post/2, put/2, etc

Result returned from request!/3, get!/2, post!/2, put!/2, etc

Functions

A shortcut for request(:delete, url, options)

A shortcut for request!(:delete, url, options)

A shortcut for request(:get, url, options)

A shortcut for request!(:get, url, options)

A shortcut for request(:head, url, options)

A shortcut for request!(:head, url, options)

A shortcut for request(:options, url, options)

A shortcut for request!(:options, url, options)

A shortcut for request(:patch, url, options)

A shortcut for request!(:patch, url, options)

A shortcut for request(:post, url, options)

A shortcut for request!(:post, url, options)

A shortcut for request(:put, url, options)

A shortcut for request!(:put, url, options)

Sends an HTTP request

Starts a linked worker process for use with the direct option

Starts a worker process for use with the direct option

Ensures that HTTPotion and its dependencies are started

Link to this section Types

Link to this type http_opts() View Source
http_opts() :: [
  body: binary() | charlist(),
  headers: [{atom() | String.Chars.t(), String.Chars.t()}],
  query: %{optional(String.Chars.t()) => String.Chars.t()},
  timeout: timeout(),
  basic_auth: {List.Chars.t(), List.Chars.t()},
  stream_to: pid() | port() | atom() | {atom(), node()},
  direct: pid() | port() | atom() | {atom(), node()},
  ibrowse: keyword(),
  auto_sni: boolean(),
  follow_redirects: boolean()
]

List of options to all request functions.

  • body - request body
  • headers - HTTP headers (e.g. ["Accept": "application/json"])
  • query - URL query string (e.g. %{page: 1})
  • timeout - timeout in milliseconds
  • basic_auth - basic auth credentials (e.g. {"user", "password"})
  • stream_to - if you want to make an async request, reference to the process
  • direct - if you want to use ibrowse’s direct feature, reference to the worker spawned by spawn_worker_process/2 or spawn_link_worker_process/2
  • ibrowse - options for ibrowse
  • auto_sni - if true and the URL is https, configures the server_name_indication ibrowse/ssl option to be the host part of the requestedURL
  • follow_redirects - if true and a response is a redirect, re-requests with header[:Location]
Link to this type http_result() View Source
http_result() ::
  HTTPotion.Response.t()
  | %HTTPotion.AsyncResponse{id: term()}
  | %HTTPotion.ErrorResponse{message: term()}

Result returned from request/3, get/2, post/2, put/2, etc.

Link to this type http_result_bang() View Source
http_result_bang() ::
  HTTPotion.Response.t() | %HTTPotion.AsyncResponse{id: term()}

Result returned from request!/3, get!/2, post!/2, put!/2, etc.

Link to this section Functions

Link to this function delete(url, options \\ []) View Source

A shortcut for request(:delete, url, options).

A shortcut for request!(:delete, url, options).

A shortcut for request(:get, url, options).

A shortcut for request!(:get, url, options).

Link to this function handle_response(response) View Source

A shortcut for request(:head, url, options).

A shortcut for request!(:head, url, options).

Link to this function options(url, options \\ []) View Source
options(String.Chars.t(), http_opts()) :: http_result()

A shortcut for request(:options, url, options).

Link to this function options!(url, options \\ []) View Source

A shortcut for request!(:options, url, options).

A shortcut for request(:patch, url, options).

A shortcut for request!(:patch, url, options).

A shortcut for request(:post, url, options).

A shortcut for request!(:post, url, options).

Link to this function process_options(options) View Source
Link to this function process_request_body(body) View Source
Link to this function process_request_headers(headers) View Source
Link to this function process_response_body(body) View Source
Link to this function process_response_body(headers, body) View Source
Link to this function process_response_chunk(body) View Source
Link to this function process_response_headers(headers) View Source
Link to this function process_response_location(response) View Source
Link to this function process_status_code(status_code) View Source
Link to this function process_url(url, options) View Source

A shortcut for request(:put, url, options).

A shortcut for request!(:put, url, options).

Link to this function redirect_method(response, method) View Source
Link to this function request(method, url, options \\ []) View Source
request(atom(), String.Chars.t(), http_opts()) :: http_result()

Sends an HTTP request.

See the type documentation of http_opts for a description of options.

Link to this function request(method, url, body, headers, options) View Source
Link to this function request!(method, url, options \\ []) View Source

Like request/3, but raises HTTPotion.HTTPError if failed.

Link to this function request_direct(conn_pid, method, url, body \\ "", headers \\ [], options \\ []) View Source
Link to this function spawn_worker_process(url, options \\ []) View Source

Starts a worker process for use with the direct option.

Ensures that HTTPotion and its dependencies are started.

Link to this function stop_worker_process(pid) View Source

Stops a worker process started with spawn_worker_process/2 or spawn_link_worker_process/2.

Link to this function transformer(target, method, url, options) View Source