test http-kit
timeout..#
- look at result for a
timeout 1ms
..
(require
['org.httpkit.client :as 'http])
(let
[options {:timeout 1}
url "http://yahoo.com"
]
(def vout @(http/get url options)))
user=> (keys vout)
(:opts :error)
user=> vout
{:opts {:timeout 1, :method :get, :url "http://yahoo.com"}, :error #error {
:cause "read timeout: 1ms"
:via
[{:type org.httpkit.client.TimeoutException
:message "read timeout: 1ms"
:at [org.httpkit.client.HttpClient clearTimeout "HttpClient.java" 82]}]
:trace
[[org.httpkit.client.HttpClient clearTimeout "HttpClient.java" 82]
[org.httpkit.client.HttpClient run "HttpClient.java" 433]
[java.lang.Thread run "Thread.java" 748]]}}
user=> (type (:error vout))
org.httpkit.client.TimeoutException
Answer the question: does http-kit
func use the callback if there is an {:error ...}
?#
(let
[options {:timeout 1}
url "http://yahoo.com"
callback-fn #(println "callback yay! ____" % "_____")
]
;(def vout @(http/get url options))
;(def vout @(http/get url options callback-fn))
(def vout (http/get url options callback-fn))
)
- => well looks like the Callback func is still called on an error.
callback yay! ____ {:opts {:timeout 1, :method :get, :url http://yahoo.com}, :error #error {
:cause read timeout: 1ms
:via
[{:type org.httpkit.client.TimeoutException
:message read timeout: 1ms
:at [org.httpkit.client.HttpClient clearTimeout HttpClient.java 82]}]
:trace
[[org.httpkit.client.HttpClient clearTimeout HttpClient.java 82]
[org.httpkit.client.HttpClient run HttpClient.java 433]
[java.lang.Thread run Thread.java 748]]}} _____
user=>