Я разрабатываю веб-приложение play, которое предполагается использовать в Google приложении. Я пытаюсь отправить запрос на другой сервер, чем обрабатывать ответ. На моем localhostотлично работает Однако у меня есть трудности, когда я тестирую его на GAE. Код выглядит следующим образом:Отправляющий запрос от Google App Engine
import com.google.appengine.repackaged.org.apache.http.HttpResponse;
import com.google.appengine.repackaged.org.apache.http.client.methods.HttpGet;
import com.google.appengine.repackaged.org.apache.http.conn.scheme.PlainSocketFactory;
import com.google.appengine.repackaged.org.apache.http.conn.scheme.Scheme;
import com.google.appengine.repackaged.org.apache.http.conn.scheme.SchemeRegistry;
import com.google.appengine.repackaged.org.apache.http.impl.client.DefaultHttpClient;
import com.google.appengine.repackaged.org.apache.http.impl.conn.SingleClientConnManager;
import com.google.appengine.repackaged.org.apache.http.params.BasicHttpParams;
public class Getter{
public static byte[] getStuff(){
String urlString = "http://example.com/item?param=xy";
SchemeRegistry schemeRegistry = new SchemeRegistry();
schemeRegistry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));
BasicHttpParams params = new BasicHttpParams();
SingleClientConnManager connmgr = new SingleClientConnManager(params, schemeRegistry);
DefaultHttpClient client = new DefaultHttpClient(connmgr, params);
HttpGet get = new HttpGet(urlString);
byte[] buf = null;
try {
HttpResponse resp = client.execute(get);
buf = new byte[(int) resp.getEntity().getContentLength()];
resp.getEntity().getContent().read(buf);
} catch (Exception e) {
System.out.println("There was a problem.");
e.printStackTrace();
}
return buf;
}
}
Печально то, что я не получаю сообщение об ошибке с e.printStackTrace() ;. В GAE журнал распечатывает «возникла проблема». Я попробовал много реализаций после исследования, но не смог заставить их работать. Я ценю любую помощь.
Это здорово! Большое спасибо. Вы знаете какой-либо способ извлечения содержимого ответа из этих данных? Что есть в содержании - это изображение, и мне нужно только это, чтобы вернуться из метода. –
Опять же, это все в документации URLFetch на сайте URLFetch Google. Я добавил еще один код в ответ выше. – jmort253