【问题标题】:How do I read response headers + body from single POST using scala's dispatch lib如何使用 scala 的调度库从单个 POST 中读取响应标头 + 正文
【发布时间】:2010-09-27 15:44:06
【问题描述】:

我一直在尝试使用 dispatch 库通过 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

迈克尔

【问题讨论】:

    标签: scala httpclient scala-dispatch


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-25
      • 2014-05-24
      • 2019-03-14
      • 2023-01-14
      相关资源
      最近更新 更多