Skip to main content

request

function

org.httpkit.client/request

(request [{:keys [client timeout connect-timeout idle-timeout filter worker-pool keepalive as follow-redirects max-redirects response trace-redirects allow-unsafe-redirect-methods proxy-host proxy-port proxy-url tunnel? deadlock-guard? auto-compression? insecure? nested-param-style], :as opts, :or {auto-compression? true, idle-timeout 60000, proxy-port -1, tunnel? false, response (promise), follow-redirects true, proxy-url nil, as :auto, deadlock-guard? true, proxy-host nil, max-redirects 10, keepalive 120000, filter IFilter/ACCEPT_ALL, connect-timeout 60000}} & [callback]])
Issues an async HTTP request and returns a promise object to which the value of `(callback {:opts _ :status _ :headers _ :body _})` or `(callback {:opts _ :error _})` will be delivered. The latter will be delivered on client errors only, not on http errors which will be contained in the :status of the first. ;; Asynchronous GET request (returns a promise) (request {:url "http://www.cnn.com"}) ;; Asynchronous GET request with callback (request {:url "http://www.cnn.com" :method :get} (fn [{:keys [opts status body headers error] :as resp}] (if error (println "Error on" opts) (println "Success on" opts)))) ;; Synchronous requests @(request ...) or (deref (request ...) timeout-ms timeout-val) ;; Issue 2 concurrent requests, then wait for results (let [resp1 (request ...) resp2 (request ...)] (println "resp1's status: " (:status @resp1)) (println "resp2's status: " (:status @resp2))) Returned body type is controlled by `:as` option: Without automatic unzipping: `:none` - org.httpkit.DynamicBytes `:raw-byte-array` - bytes[] With automatic unzipping: `:byte-array` - bytes[] `:stream` - ByteInputStream `:text` - String (charset based on Content-Type header) `:auto` - As `:text` or `:stream` (based on Content-Type header) Request options: :url :method :headers :timeout :connect-timeout :idle-timeout :query-params :as :form-params :client :body :basic-auth :user-agent :filter :worker-pool :nested-param-style - ∈ #{:comma-separated :array :indexed nil} (default nil)

No examples yet. Be the first to add one!