如何在Dispatch中获取失败请求的值?

时间:2013-02-18 17:00:57

标签: scala scala-dispatch

当我在Dispatch中提出请求时,我会应用Promise并得到这个:

Left(dispatch.StatusCode: Unexpected response status: 400)

如何获取响应的实际文本?我正在使用Solr,它仍然会返回有失败的HTTP请求的有价值的JSON。

1 个答案:

答案 0 :(得分:10)

看起来你写的内容如下:

Http(url OK as.String)

OK提供了您在此处看到的简单错误处理。您可以使用>更直接地获得结果。例如,如果你这样写:

Http(url("http://google.com/") OK as.String).either()

你会得到以下(至少目前):

Left(dispatch.StatusCode: Unexpected response status: 301)

但如果你做了以下小改动:

Http(url("http://google.com/") > as.String).either()

您可以获得重定向页面的全部内容:

res1: Either[Throwable,String] = 
Right(<HTML><HEAD><meta http-equiv="content-type" ...

如果您想对响应做一些更好的事情,您可以编写自己的asWhatever处理程序 - 请参阅我的答案here,以演示如何以地图形式访问标题,示例