当我在 Dispatch 中提出请求时,我应用 Promise 并得到以下信息:
Left(dispatch.StatusCode: Unexpected response status: 400)
如何获得响应的实际文本?我正在使用 Solr,它仍然返回有价值的 JSON 以及失败的 HTTP 请求。
当我在 Dispatch 中提出请求时,我应用 Promise 并得到以下信息:
Left(dispatch.StatusCode: Unexpected response status: 400)
如何获得响应的实际文本?我正在使用 Solr,它仍然返回有价值的 JSON 以及失败的 HTTP 请求。
看起来您已经编写了如下内容:
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
处理程序——例如,请参阅我的答案,了解如何以映射的形式访问标题。