2013-02-18 56 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