RequestBuilder.send() で HTTP リクエストを送信しています。成功した応答が onResponseReceived() に返され、エラーが onError() に返されることを期待しています。しかし、それは私が見ているものではありません。GWT は、成功または失敗に関係なく onResponseReceived() を呼び出します。
私が本当に何を期待すべきか知っている人はいますか?エラーをより適切に検出して報告するのに役立つ情報はありますか?
サンプルコードは次のとおりです。
builder.sendRequest(null, new RequestCallback() {
@Override
public void onResponseReceived(Request request, Response response) {
Header[] debugHeaders = response.getHeaders();
String debugHeaders1 = response.getHeadersAsString();
int debugStatusCode = response.getStatusCode();
String debugStatusText = response.getStatusText();
String debugText = response.getText();
handleResponse(response);
}
@Override
public void onError(Request request, Throwable exception) {
reportError();
}
});
Wi-Fi を無効にすることで、コンピューターで強制的にエラーを発生させることができます。その場合、 onResponse() が呼び出されます。getHeaders() は長さ 1 の配列を返します。唯一のエントリは null に設定されています。getHeadersAsString は "" を返します。getStatusCode は 0 を返します。getStatusText() は "" を返します。getText() は "" を返します。
これが常に当てはまる場合は、コードでそれを探すことができます。ただし、ブラウザーが異なれば、エラーが異なれば、結果も異なると思います。常にエラーを検出する良い方法はありますか?
(HTTP の問題がない限り、私のコードは正常に動作します。)