2013-02-18 54 views
7

当我做出调度请求,我申请的承诺,并得到这样的:如何在Dispatch中获取失败请求的值?

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

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

回答

10

看起来你已经写了类似如下:

Http(url OK as.String) 

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

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

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

但是,如果您进行以下小改动:

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

你得到重定向页面的全身:

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

如果您想对回应做些更有趣的事情,您可以编写自己的asWhatever处理程序 - 例如,请参阅我的回答here,了解如何以地图形式访问标题。

+0

你知道在哪里为databinder网站维护文档吗?我不介意在这样的小用例中做出贡献和加入。 – crockpotveggies 2013-05-22 17:09:11

+1

回答了我自己的问题:https://github.com/dispatch/reboot/tree/master/docs – crockpotveggies 2013-05-22 17:43:31