当我在Dispatch中发出请求时,我应用Promise并获得以下结果:
Left(dispatch.StatusCode: Unexpected response status: 400)
我该如何获取响应的实际文本?我正在使用Solr,但它仍然返回了包含失败HTTP请求的有价值JSON。
当我在Dispatch中发出请求时,我应用Promise并获得以下结果:
Left(dispatch.StatusCode: Unexpected response status: 400)
我该如何获取响应的实际文本?我正在使用Solr,但它仍然返回了包含失败HTTP请求的有价值JSON。
看起来你写了类似以下的内容:
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
处理程序——例如,查看我的回答这里,演示如何将标头作为映射访问。