【发布时间】:2011-06-26 14:02:15
【问题描述】:
我正在用 GWT 编写一个 Web 应用程序。我有一个类可以处理我所有的 http 请求并返回服务器的响应。 这是我当前的代码:(变量 messageXml 被定义为常量)
try {
Request request = builder.sendRequest(requestData, new RequestCallback() {
@Override
public void onResponseReceived(Request request, Response response) {
if(200 == response.getStatusCode()) {
messageXml = response.getText();
}
else {
Window.alert("There was an error (1) :-(");
messageXml = "ERROR";
}
}
@Override
public void onError(Request request, Throwable exception) {
Window.alert("There was an error (2) :-(");
messageXml = "ERROR";
}
});
Window.alert(messageXml);
return messageXml;
}
catch (RequestException e) {
Window.alert("Could not connect to the server :-(");
return "ERROR";
}
当我调用 httprequest 方法时,它首先返回字符串,然后执行 try 正文中的代码。 例如当我这样做时:
request object = new request();
String test = object.httpRequest(file, type, requestData);
Window.alert(test);
它首先输出 null(因为字符串还没有内容),然后输出字符串的内容。有谁知道为什么该方法的行为如此?
【问题讨论】:
-
“变量 messageXml 被定义为一个常量”——但是你正在给它赋值!