我需要从我的Android设备发送一个http post请求到我的localhost:8080上运行的web服务器,并由google app引擎托管。
目前的代码是:
try {
HttpPost httppost = new HttpPost("http://192.168.2.220:8080");
httppost.setHeader("Content-type", "application/json");
ResponseHandler <String> responseHandler = new BasicResponseHandler();
StringEntity se = new StringEntity(object.toString());
se.setContentEncoding(newBasicHeader(HTTP.CONTENT_TYPE,"application/json"));
httppost.setEntity(se);
System.out.println("Request Sent");
String response = httpclient.execute(httppost, responseHandler);
String temp = EntityUtils.toString(response.getEntity());
} catch (ClientProtocolException e) {}
catch (IOException e) {
}
}
我也尝试过设置:
HttpPost httppost = new HttpPost("http://10.0.2.2:8080");
在所有情况下,响应为null并且程序强制关闭。我正确地发送请求了吗?有人可以在这里指导我吗?
由于
答案 0 :(得分:7)
'向localhost发送请求'表示将其发送到本地计算机。在你的情况下,这将是Android设备。您希望将请求发送到桌面计算机,这是一个远程主机。问题是Appengine dev_sever默认只绑定到本地地址,因此无法远程访问(即,从您的Android设备)。您需要传递--address
选项才能从外部访问。检查计算机的IP并将其作为地址传递。类似的东西:
dev_appserver.cmd --address=192.168.2.220
详细信息:http://code.google.com/appengine/docs/java/tools/devserver.html