HTTP-запросы в проекте PlayN - PullRequest
1 голос
/ 08 февраля 2012

Я хочу использовать RequestBuilder для выполнения HTTP-запросов в моем проекте PlayN, как описано здесь: 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
}

1 Ответ

0 голосов
/ 08 февраля 2012

Если вы используете 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-приложением, вам, вероятно, понадобится сделать HTTP запросы с чем-то другим, чем HTTP-клиент GWT. Вы хотите удалить вышеупомянутую зависимость и взглянуть на ответы на этот вопрос , чтобы понять, как это сделать ...

Если вам нужно сделать HTTP-запросы как в целях GWT, так и в Java PlayN, вам, вероятно, потребуется абстрагировать клиентский интерфейс HTTP, необходимый в модуле ядра, и предоставить соответствующие конкретные реализации в java и GWT. модули. Я описываю использование Gin и Guice для внедрения java- и GWT-специфичных экземпляров объектов AsyncService <> в этот ответ здесь , и аналогичный подход можно использовать для внедрения соответствующего экземпляра HTTP-клиента, необходимого для каждой платформы, если необходимо ...

...