7

ディスパッチでリクエストを行うと、Promiseを適用して次のようになります。

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

応答の実際のテキストを取得するにはどうすればよいですか?Solrを使用していますが、HTTPリクエストが失敗した場合でも貴重なJSONが返されます。

4

1 に答える 1

10

次のようなものを書いたようです。

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ハンドラーを作成できます。たとえば、ヘッダーにマップとしてアクセスする方法のデモンストレーションについては、ここで私の回答を参照してください。

于 2013-02-18T18:41:20.643 に答える