超时异常(将数据从Android发送到PHP页面)

超时异常(将数据从Android发送到PHP页面),android,http,exception,send,Android,Http,Exception,Send,现在我正在尝试将数据从android应用程序(带模拟器)发送到web服务器(一个php页面)。首先,我用emulator试过这个程序,它运行得很成功。之后,我用电话尝试了这个程序,但出现了一个异常: -->IO异常:操作超时 我的代码的一部分: HttpClient httpclient = new DefaultHttpClient(); HttpPost httppost = new HttpPost("http://192.168.1.33:90/takeDatas.php"); try

现在我正在尝试将数据从android应用程序(带模拟器)发送到web服务器(一个php页面)。首先,我用emulator试过这个程序,它运行得很成功。之后,我用电话尝试了这个程序,但出现了一个异常:

-->IO异常:操作超时

我的代码的一部分:

HttpClient httpclient = new DefaultHttpClient();

HttpPost httppost = new HttpPost("http://192.168.1.33:90/takeDatas.php");
try {                   
    List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
    nameValuePairs.add(new BasicNameValuePair("enlem", latitude ));
    nameValuePairs.add(new BasicNameValuePair("boylam", longitude ));
    httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
    httpclient.execute(httppost);

} catch (ClientProtocolException e) {
    Toast.makeText(ReportLocationActivity.this, "Client protokol exception ", Toast.LENGTH_LONG).show();
} catch (IOException e) {
    Toast.makeText(ReportLocationActivity.this, "IO exception "+e.getMessage(), Toast.LENGTH_LONG).show();
}
HttpClient-HttpClient=newdefaulthttpclient();
HttpPost HttpPost=新的HttpPost(“http://192.168.1.33:90/takeDatas.php");
试试{
List nameValuePairs=新的ArrayList(2);
添加(新的BasicNameValuePair(“enlem”,纬度));
添加(新的BasicNameValuePair(“boylam”,经度));
setEntity(新的UrlEncodedFormEntity(nameValuePairs));
httpclient.execute(httppost);
}捕获(客户端协议例外e){
Toast.makeText(ReportLocationActivity.this,“客户端协议异常”,Toast.LENGTH_LONG.show();
}捕获(IOE异常){
Toast.makeText(ReportLocationActivity.this,“IO异常”+e.getMessage(),Toast.LENGTH\u LONG.show();
}
我希望你能帮助我。
提前感谢。

10.0.2.2是模拟器归属于主机的IP

一般来说,10.x.x.x是

那么您必须在运行模拟器的同一台机器上托管服务器?这是我看到它在模拟器中工作的唯一方式


无论如何,你的应用程序需要你服务器的实际IP,如果你想让它在你的网络之外工作,你需要你的公共IP(找到你的),如果你有路由器,为端口90设置端口转发。非常复杂,但有大量特定于路由器的指令集。

不,我只看到这个例外。您是否检查过您的Web服务器是否正确地侦听了您机器上的端口90?尝试在您的手机浏览器中访问PHP页面,它是否加载?如果您的手机不在同一网络上,它将无法访问主机,因为它使用的是专用IP地址。@molnarm-是的,我的手机浏览器无法连接到我的php页面。我能做什么?@MisterSquonk-是的,我的Web服务器正确地监听了我电脑上的端口90。(这个程序在emulator上运行顺利)同意@iremce使用本地主机而不是静态IP。如果无法获得静态IP,请使用动态IP服务,如dyn-dns.com