Проблема с KSOAP2 в сети 3G: исключение XmlPullParserException

#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 где-либо в своем коде?