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

Nei*_*eil 7 scala scala-dispatch

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

Left(dispatch.StatusCode: Unexpected response status: 400)
Run Code Online (Sandbox Code Playgroud)

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

Tra*_*own 10

看起来你写的东西如下:

Http(url OK as.String)
Run Code Online (Sandbox Code Playgroud)

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

Http(url("http://google.com/") OK as.String).either()
Run Code Online (Sandbox Code Playgroud)

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

Left(dispatch.StatusCode: Unexpected response status: 301)
Run Code Online (Sandbox Code Playgroud)

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

Http(url("http://google.com/") > as.String).either()
Run Code Online (Sandbox Code Playgroud)

您将获得重定向页面的完整正文:

res1: Either[Throwable,String] = 
Right(<HTML><HEAD><meta http-equiv="content-type" ...
Run Code Online (Sandbox Code Playgroud)

如果你想要做的事与响应发烧友,您可以编写自己的asWhatever处理程序,看到我的答案在这里为如何获得访问头作为地图,例如演示.