在我的应用程序中,我使用的是 ksoap2 库,但出现异常:当应用程序尝试通过阿根廷和巴拿马的 WAP2.0 传输连接时传输失败,并且在所有其他国家/地区应用程序运行正常。
如果有任何相同的解决方案,请向我提供任何帮助,我们将不胜感激。
在我的应用程序中,我使用的是 ksoap2 库,但出现异常:当应用程序尝试通过阿根廷和巴拿马的 WAP2.0 传输连接时传输失败,并且在所有其他国家/地区应用程序运行正常。
如果有任何相同的解决方案,请向我提供任何帮助,我们将不胜感激。
我认为这与国家无关,设备可能具有不同的配置。
首先,您必须检查故障设备中是否存在 CID = "WPTCP" 的服务记录。检查 UID 是您正在使用的 UID。对于 WAP2,它应该包含“WAP2”。
其次,将“deviceside”后缀附加到 URL 以确保它不会尝试通过其他连接模式:
HttpTransport httpTransport = new HttpTransport(requestURL+";deviceside=true;ConnectionUID="+wapuid);
更多信息:建立 HTTP 或套接字连接的不同方法
更新:
在有问题的设备中尝试此代码:
ConnectionFactory factory = new ConnectionFactory();
factory.setPreferredTransportTypes(new int[]{TransportInfo.TRANSPORT_WAP2});
factory.setDisallowedTransportTypes(new int[]{TransportInfo.TRANSPORT_WAP, TransportInfo.TRANSPORT_BIS_B, TransportInfo.TRANSPORT_MDS, TransportInfo.TRANSPORT_TCP_WIFI, TRANSPORT_TCP_CELLULAR});
ConnectionDescriptor cd = factory.getConnection("http://www.google.com");
HttpConnection httpConnection = (HttpConnection) cd.getConnection();
//Now work with httpConnection as usual.
如果它不起作用,那么由于某种原因您无法打开 WAP2 连接。