#android #soap #ksoap2 #socketexception #xmlpullparser
#Android #soap #ksoap2 #исключение socketexception #xmlpullparser
Вопрос:
Я использовал KSOAP2 для вызова веб-службы. Вот мой код:
SoapSerializationEnvelope soapEnvelope = new SoapSerializationEnvelope(
SoapEnvelope.VER11);
soapEnvelope.dotNet = true;
soapEnvelope.setOutputSoapObject(request);
HttpTransportSE aht = new HttpTransportSE(URL);
try {
aht.call(SOAP_ACTION, soapEnvelope);
SoapObject resu<
try{
result = (SoapObject) soapEnvelope.getResponse();
}catch (ClassCastException e) {
result = (SoapObject)soapEnvelope.bodyIn;
}
// parse the SOAP object
} catch (Exception e) {
e.printStackTrace(); // here it is throwing XmlPullParserException in a #G network
}
Код работает нормально, когда мы тестируем его на нашем устройстве и в сети. Я тестировал его в другом месте и в разных сетях Wi-Fi и 3g. Он работает нормально. Когда мой клиент протестировал его, используя свое устройство и сеть Wi-Fi, он также работает нормально. Но когда он попробовал то же самое, используя сеть 3G, он выдает XmlPullParserException
(ожидается: START_TAG {http://schemas.xmlsoap.org/soap/envelope /}Envelopre (позиция: START_TAG @1: 6 в java.io.InputStreamReader). В чем может быть проблема, стоящая за этим типом специфичной сети SocketException
.
Здесь я хотел бы упомянуть, что перед вызовом SOAP я проверил состояние сети, используя следующий код:
if (connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE)
.getState() == NetworkInfo.State.CONNECTED
|| connectivityManager.getNetworkInfo(
ConnectivityManager.TYPE_WIFI).getState() == NetworkInfo.State.CONNECTED) {
// we are connected to a network
//go for SOAP call
}
Комментарии:
1. можете ли вы предоставить полное исключение
2. Поскольку я не сталкивался с этой ошибкой в своей среде разработки, у меня есть только эта ошибка massage, которую я печатаю в любом AlertDialog.
3. некоторое время может быть слабое подключение, что может привести к потере соединения, и это вызовет проблему.
4. вы вызываете веб-службу, передавая какой-либо параметр? Используете ли вы метод request.addProperty где-либо в своем коде?