1

我想使用 RequestBuilder 在我的 PlayN 项目中发出 HTTP 请求,如下所述: http ://code.google.com/webtoolkit/doc/latest/DevGuideServerCommunication.html#DevGuideHttpRequests

我在我的模块 xml 文件中添加了标签:

但我仍然有以下编译错误:

导入 com.google 无法解析

我还应该做些什么来编译我的项目吗?

这是代码:

import com.google.gwt.http.client.*;
...

String url = "http://www.myserver.com/getData?type=3";
RequestBuilder builder = new RequestBuilder(RequestBuilder.GET, URL.encode(url));

try {
    Request request = builder.sendRequest(null, new RequestCallback() {
        public void onError(Request request, Throwable exception) {
       // Couldn't connect to server (could be timeout, SOP violation, etc.)
}

public void onResponseReceived(Request request, Response response) {
  if (200 == response.getStatusCode()) {
      // Process the response in response.getText()
  } else {
    // Handle the error.  Can get the status text from response.getStatusText()
      }
    }
  });
} catch (RequestException e) {
  // Couldn't connect to server
}
4

1 回答 1

0

如果您使用 Maven 进行构建(我怀疑您可能是),请绝对确保以下依赖项在您的 html/pom.xml 中

<dependency>
  <groupId>com.google.gwt</groupId>
  <artifactId>gwt-user</artifactId>
  <version>2.4.0</version>
  <scope>provided</scope>
</dependency>

如果您使用的 GWT 版本不是 2.4.0,则可能需要更改版本

编辑: 现在我知道您正在运行 Java 应用程序(基于下面的评论)而不是 GWT 应用程序,您可能需要使用 GWT 的 HTTP 客户端以外的东西发出 HTTP 请求。您需要删除上述依赖项并查看此问题的答案,以了解如何执行此操作...

如果您需要在 GWT 和 Java PlayN 目标中发出 HTTP 请求,您可能需要抽象核心模块中所需的 HTTP 客户端接口,并在 java 和 GWT 模块中提供适当的具体实现。我在此答案中描述了使用 Gin 和 Guice 在此答案中注入 AsyncService<> 对象的 java 和 GWT 特定实例,如有必要,可以使用类似的方法在每个平台上注入所需的适当 HTTP 客户端实例......

于 2012-02-08T19:52:01.737 回答