我想通過自定義傳輸協議隧道傳輸HTTP請求流。是否有任何Clojure或作爲後備的Java HTTP客戶端讓我訪問底層請求流或讓我過濾序列化的請求和響應?通過Clojure/Java中的自定義協議來隧道HTTP
我知道clj-http
包裝Apache HttpComponents,但似乎沒有提供很多掛鉤到HC內部,我已經看到HC本身,但很難瀏覽工廠,界面和管理器的叢林。
我想通過自定義傳輸協議隧道傳輸HTTP請求流。是否有任何Clojure或作爲後備的Java HTTP客戶端讓我訪問底層請求流或讓我過濾序列化的請求和響應?通過Clojure/Java中的自定義協議來隧道HTTP
我知道clj-http
包裝Apache HttpComponents,但似乎沒有提供很多掛鉤到HC內部,我已經看到HC本身,但很難瀏覽工廠,界面和管理器的叢林。
clj-http包括讀取並從輸入流
(client/get "http://site.com/bigrequest.html" {:as :stream})
(client/post "http://site.com/resources"
{:body (clojure.java.io/input-stream "/tmp/foo") :length 1000})
寫那麼您可以在您所選擇的運輸包裝這個流的能力。
本示例將響應作爲流讀取。有沒有辦法將*請求*作爲流? –
ahh我會研究一下...... –
您可以將請求正文作爲流。爲此,您需要將:body
值設置爲實現InputStream
的任何對象。檢查功能wrap-input-coercion
在https://github.com/dakrone/clj-http/blob/master/src/clj_http/client.clj欲知更多詳情。
我需要訪問帶有標題(至少)的整個請求。 –
我不認爲clj-http會有這個選項,你需要使用更低級別的HTTP API – Ankur
它可能與協議中的傳輸[正確分隔](http://golang.org/pkg/net/http/#Request.Write):P –