http.async.client.request documentation

Asynchronous HTTP Client - Clojure - Requesting API


Default set of callbacks.


(convert-action action)
Converts action (:abort, nil) to Async client STATE.


(execute-request client req & {status :status, headers :headers, part :part, completed :completed, error :error})
Executes provided request.
- req        - request to be executed
- :status    - status callback (optional, defaults to status-collect)
- :headers   - headers callback (optional, defaults to headers-collect)
- :part      - body part callback (optional, defaults to body-collect)
- :completed - response completed (optional, defaults to body-completed)
- :error     - error callback (optional, defaults to error-collect)

Returns a map:
- :id      - unique ID of request
- :status  - promise that once status is received is delivered, contains lazy map of:
  - :code     - response code
  - :msg      - response message
  - :protocol - protocol with version
  - :major    - major version of protocol
  - :minor    - minor version of protocol
- :headers - promise that once headers are received is delivered, contains lazy map of:
  - :server - header names are keyworded, values stay not changed
- :body    - body of response, depends on request type, might be ByteArrayOutputStream
             or lazy sequence, use conveniece methods to extract it, like string
- :done    - promise that is delivered once receiving response has finished
- :error   - promise that is delivered if requesting resource failed, once delivered
             will contain Throwable.


(get-encoding {ct :content-type, :or {ct ""}})
Gets content encoding from headers, if Content-Type header not present
or media-type in it is missing => nil


(prepare-request method url & {:keys [headers query body cookies proxy auth timeout]})
Prepares method (GET, POST, ..) request to url.
  :query   - map of query parameters, if value is vector than multiple values
             will be send as n=v1&n=v2
  :headers - map of headers
  :body    - body
  :cookies - cookies to send
  :proxy   - map with proxy configuration to be used
    :host     - proxy host
    :port     - proxy port
    :protocol - (optional) protocol to communicate with proxy,
                :http (default, if you provide no value) and :https are allowed
    :user     - (optional) user name to use for proxy authentication,
                has to be provided with :password
    :password - (optional) password to use for proxy authentication,
                has to be provided with :user
  :auth    - map with authentication to be used
    :type       - either :basic or :digest
    :user       - user name to be used
    :password   - password to be used
    :realm      - realm name to authenticate in
    :preemptive - assume authentication is required
  :timeout - request timeout in ms


(url-encode arg)
Taken from Clojure Http Client