Как обрабатывать более одного тегов в теле мыла запроса
-
12-12-2019 - |
Вопрос
Я использую SOAP WebService в моем приложении.Проблема, которую я сталкиваюсь, есть, есть один дополнительный тег в корпусе SOAP-запроса.Из-за этого я получаю ошибку SOAP неисправности «SOAPFOULD:« SOAPSODE: «SOAP: SOAPSTRING SIFLINGS) SERVER не удалось обработать запрос. ---> ссылка объекта не установлена на экземпляр объекта.Faipactor: «NULL» Деталь: org.kxml2.kdom.node @ 40516CE8 ".
Вот мымонный запрос ....
POST /appws.asmx HTTP/1.1
Host: www.xxxxxx.com
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://xxxxxxx.com/saveCustomerProfile"
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<saveCustomerProfile xmlns="http://xxxxxx.com/">
<customerProfile>
<id>long</id>
<name>string</name>
<lastName>string</lastName>
<phoneNumber>string</phoneNumber>
<zipCode>string</zipCode>
<email>string</email>
<birthday>string</birthday>
<gender>string</gender>
<emailExclusiveSavings>boolean</emailExclusiveSavings>
<textExclusiveSavings>boolean</textExclusiveSavings>
</customerProfile>
</saveCustomerProfile>
</soap:Body>
</soap:Envelope>
.
Вот код, который я использую для вызова этого WebService
SoapObject request = new SoapObject(NAMESPACE, "saveCustomerProfile");
request.addProperty("id", 0);
request.addProperty("name","aaaaa");
request.addProperty("lastName","bbbbbb");
request.addProperty("phoneNumber", "1234567890");
request.addProperty("zipCode", "1234");
request.addProperty("email", "123@gmail.com");
request.addProperty("birthday", "02/02/2011");
request.addProperty("gender", "male");
request.addProperty("emailExclusiveSavings","true");
request.addProperty("textExclusiveSavings", "false");
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
SoapEnvelope.VER11);
envelope.dotNet = true;
envelope.setOutputSoapObject(request);
HttpTransportSE httpTransport = new HttpTransportSE(URL);
httpTransport.call(SOAP_ACTION, envelope);
System.out.println("response "+envelope.getResponse());
.
Я нашел, где проблема происходит.
<saveCustomerProfile xmlns="http://xxxxxx.com/">
<customerProfile>
.
Обычно только один главный тег будет там внутри мыла тела, здесь у меня есть два и.Я не знаю, как справиться с этим.Я проверил с некоторыми другими SOAP WebServices все работает на одном и том же коде.Пожалуйста, помогите мне.
Решение
Смотрите это Учебник ..might поможет вам: