我正在使用 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 问题,我的代码就可以正常工作。)