2013-02-18 30 views
7

Khi tôi thực hiện một yêu cầu trong công văn, tôi áp dụng các Promise và có được điều này:Làm cách nào để nhận được giá trị của một yêu cầu không thành công trong Công văn?

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

Làm thế nào để tôi nhận được văn bản thực tế của phản ứng? Tôi đang sử dụng Solr và nó vẫn trả về JSON có giá trị với các yêu cầu HTTP không thành công.

Trả lời

10

Dường như bạn đã viết một cái gì đó như sau:

Http(url OK as.String) 

Các OK là những gì đang cung cấp các lỗi đơn giản xử lý bạn thấy ở đây. Bạn có thể sử dụng > để nhận kết quả trực tiếp hơn. Ví dụ, nếu bạn viết này:

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

Bạn sẽ nhận được như sau (tại thời điểm, ít nhất):

Nhưng nếu bạn thực hiện thay đổi nhỏ sau:

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

Bạn có toàn bộ trang chuyển hướng:

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

Nếu bạn muốn làm điều gì đó phù hợp với câu trả lời, bạn có thể viết trình xử lý asWhatever của riêng mình — xem câu trả lời của tôi here để biết cách truy cập vào tiêu đề dưới dạng bản đồ.

+0

Bạn có biết tài liệu được duy trì cho trang web dữ liệu không? Tôi sẽ không nhớ đóng góp và thêm vào trong các trường hợp sử dụng nhỏ như thế này. – crockpotveggies

+1

Đã trả lời câu hỏi của riêng tôi: https://github.com/dispatch/reboot/tree/master/docs – crockpotveggies

Các vấn đề liên quan