2

我一直在尝试使用调度库通过 http POST 请求下载文件。服务器返回一个“content-disposition”标头,建议它返回的数据文件的文件名。

我已成功将整个响应正文作为字符串读取,

http(r >~ { (x) => println(x.getLines.mkString("","\n","")) })

自己读取响应头

http(r >:> { (x) => println(x) })

并为响应正文获取 BufferedReader

http(r >> { (x,c) => (new BufferedReader(new InputStreamReader(x,c))).readLine })

我将如何使用调度库一次性获取响应标头和响应正文?文档非常稀少,我是 Scala 新手。

TIA

迈克尔

4

1 回答 1

2

Dispatch 使用处理程序来处理来自请求的 HTTP 响应。它为执行日常任务提供了几个方便的快捷方式,例如您在问题中概述的那些,例如生成 InputStream、将内容作为字符串返回或查看响应的标题。还有一个方法,>+,它组成了两个独立的 Handler 并在同一个请求上执行它们。以下是使用该处理程序解决问题的方法:

val ret = http(req >+ { r => (r as_str, r >:> { _("Content-Disposition") }) })

返回值是一个 Tuple2,在这种情况下,它包含一个字符串,它是网页的内容,另一个字符串是 Content-Disposition 标头的值。

于 2010-09-28T04:58:14.053 回答