在Clojure / Java中通过自定义协议隧道传输HTTP

时间:2012-06-05 01:08:26

标签: java http clojure

我想通过自定义传输协议隧道传输HTTP请求流。是否有任何Clojure或作为后备的Java HTTP客户端,它允许我访问底层请求流或让我过滤序列化的请求和响应?

我知道clj-http包装Apache HttpComponents,但似乎没有提供很多关于HC内部的钩子,我已经研究了HC本身,但很难在工厂,界面的丛林中航行和经理。

2 个答案:

答案 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功能以获取更多详细信息。