失敗した場合 (HTTP 200 以外の応答コード)、GWT RPC 要求の送信を再試行する必要があります。理由は複雑なので、詳しく説明しません。これまでのところ、すべてのリクエスト応答を同じ場所で次のように処理しています。
// We override the RpcRequestBuilder.doSetCallback method and force your service to use it
// With this we can read the response headers if we need to.
((ServiceDefTarget)serviceRPC).setRpcRequestBuilder(new RpcRequestBuilder() {
@Override
protected void doSetCallback(RequestBuilder rb, final RequestCallback callback) {
super.doSetCallback(rb, new RequestCallback() {
@Override
public void onResponseReceived(Request request,
Response response) {
httpResponseOkHandler(callback, request, response);
}
@Override
public void onError(Request request, Throwable exception) {
httpResponseErrorHandler(callback, request, exception);
}
});
}
});
したがって、httpResponseOkHandlerメソッドを使用して、HTTP の失敗をキャッチできます。しかし、リクエストを「再スロー」する方法、つまり再試行する方法はありますか? RPC 要求の高レベルのパラメーターを保存したくありません。既にストリーミングされ、再送信の準備ができている要求コンテンツを使用したいと考えています。
何か案は?