我想通过自定义传输协议隧道传输HTTP请求流。是否有任何Clojure或作为后备的Java HTTP客户端,它允许我访问底层请求流或让我过滤序列化的请求和响应?
我知道clj-http
包装Apache HttpComponents,但似乎没有提供很多关于HC内部的钩子,我已经研究了HC本身,但很难在工厂,界面的丛林中航行和经理。
答案 0 :(得分:0)
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})
然后,您可以将此流包装在您选择的传输中。
答案 1 :(得分:0)
您可以将请求正文作为流。为此,您需要将:body
值设置为实现InputStream
的任何对象。检查https://github.com/dakrone/clj-http/blob/master/src/clj_http/client.clj处的wrap-input-coercion
功能以获取更多详细信息。