2

我正在使用 Play.WS 发出 http 请求。我的目标是发送带有大文件的放置请求。

val requestHolder = WS.url("http://" + host)
requestHolder.put(???)

我不知道应该是什么类型的???流身体。requestHolder 有一个 put(File file) 方法 - 因为我没有文件,所以我不能使用它 - 并且 put[T](T body) 其中 T 可以是任何东西,只要你有一个 Writable[ 的实例T]。

有一些为 json、text、xml 等定义的默认可写文件。但对于 InputStream 则没有。

该文档提供了一个(简短的)提示来处理大型响应,但没有关于大型请求http://www.playframework.com/documentation/2.2.x/ScalaWS

任何人都知道如何定义一个可以接受 InputStream 的可写对象?或者也许是迭代者?

4

2 回答 2

2

WS 底层客户端需要InputStream. 像这样访问它:

import com.ning.http.client.AsyncHttpClient

val client:AsyncHttpClient = WS.client
于 2013-11-13T08:17:57.303 回答
1

不幸的是,这还不支持。

这里有一些关于它的讨论:

https://github.com/playframework/playframework/pull/1510

我们希望对于 Play 2.3,我们将有一个解决方案来允许它。

于 2013-11-12T00:50:07.720 回答