所以我正在尝试使用 ksoap 从 web 服务中收集一些数据。它在旧手机上运行良好,在我有 wifi 连接时在新手机上运行良好。当我从移动提供商更改为宽带时,它返回错误:
java.net.SocketException: Socket is closed
有人知道为什么会这样吗?真的很奇怪,我有两部手机都使用相同的应用程序连接到同一个 web 服务,而旧的可以工作而新的不能。
顺便说一句我的代码:
String METHOD_NAME = "MPList";
String SOAP_ACTION = "https://server.location:443/MobileWS/#MPList";
String NAMESPACE = "https://server.location:443/MobileWS/";
String URL = "https://server.location:443/MobileWS/";
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
request.addProperty("user", user);
request.addProperty("pass", pass);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER12);
List<HeaderProperty> headerList = new ArrayList<HeaderProperty>();
headerList.add(new HeaderProperty("Content-Type", "text/xml; charset=utf-8"));
headerList.add(new HeaderProperty("SoapAction", "https://server.location/#MPList"));
envelope.setOutputSoapObject(request);
HttpTransportSE httpTransport = new HttpTransportSE(URL);
httpTransport.debug = true;
try{
httpTransport.call(SOAP_ACTION, envelope, headerList);
SoapObject response = (SoapObject)envelope.bodyIn;
String a=httpTransport.responseDump;
} catch (IOException e2) {
e2.printStackTrace();
} catch (XmlPullParserException e2) {
e2.printStackTrace();
}