httpotion v3.1.3 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_request_headers(headers, body) View Source

Link to this function

process_request_headers(headers, body, options) 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

This function is deprecated. Use request/3 instead.
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

This function is deprecated. Use request/3 with 'direct' option instead.
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