当我在Dispatch中提出请求时,我会应用Promise并得到这个:
Left(dispatch.StatusCode: Unexpected response status: 400)
如何获取响应的实际文本?我正在使用Solr,它仍然会返回有失败的HTTP请求的有价值的JSON。
答案 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,以演示如何以地图形式访问标题,示例