我想通过自定义传输协议隧道传输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 –