Android:Web服务调用时操作超时

问题描述

| 我正在从Android应用程序调用网络服务。使用AVD可以,并且可以从服务器获得响应,但是当我在真实设备(HTC)上运行时,会收到“操作超时”。 设备上的互联网速度很好,例如Google Maps加载速度非常快。 要连接服务器,我使用kso​​ap2:
SoapObject request = new SoapObject(getString(R.string.NAMESPACE),getString(R.string.METHOD_NAME)); 

        SoapSerializationEnvelope envelope = 
            new SoapSerializationEnvelope(SoapEnvelope.VER11); 
        envelope.dotNet = true;


envelope.setoutputSoapObject(request);
int Timeout = 10000;
        HttpTransportSE androidHttpTransport = new HttpTransportSE(FullURL,Timeout);

        try {
            androidHttpTransport.call(getString(R.string.soAP_ACTION),envelope);           
            return envelope.getResponse().toString();
        } 
        catch (Exception e) {
            return (\"ERROR:\" + e.getMessage());
        }
URL包含服务器的IP,例如   http://46.146.120.165/RouteGen/Service.asmx 为什么在真实设备上存在超时错误,以及如何强制其正常工作?     

解决方法

        您必须为实际设备设置连接超时和套接字超时。您必须适当设置超时值。超时后,将接收到异常,捕获该异常并显示“ \“ Bad network \”之类的警报。
HttpConnectionParams.setConnectionTimeout(httpClient.getParams(),10000);
int timeoutSocket = 60*1000;
HttpConnectionParams.setSoTimeout(httpParameters,timeoutSocket);
    ,        我遇到了同样的问题。我发现的解决方案是电话使用WiFi或3g连接,而我所指的Web服务具有某种防火墙。 因此,我用主机名(例如:\'http://abc.com \')替换了URL中的IP地址(例如:\'http://10.0.0.0 \')。     ,        我在开发项目时遇到了这种情况,并找到了下面描述的解决方案: 请从
Control Panel -> Windows Firewall and click on Turns Windows Firewall on or off to turn off your Windows Firewall.
关闭Windows防火墙 然后您的应用程序运行正常。     ,        通过在开发计算机上的防火墙中创建规则以允许端口80上的远程连接,我解决了类似的问题。     ,        我在本地服务器上测试我的应用程序时遇到这种类型的错误。我使用了系统的IP地址,它可以正常工作。如果有人遇到相同的问题,请先检查您网址的IP地址。希望这对正在测试的其他人有所帮助本地服务器上没有应用程序。 昨天,我正在使用此链接访问名为http://192.168.1.7/DemoAndroid/Loginwebservice.php?username=john&dob=1234的Web服务。  并且工作正常,但是今天当我使用相同的链接时,它给了我错误   操作超时 所以我检查了我的系统IP地址,它与url。中提到的不一样,所以我复制了该IP地址并粘贴到上面的url中,然后它又可以正常工作了。