ksoap2 android 1c отличается структурой xml
ksoap2 создает XML как это
<?xml
version="1.0"
encoding="UTF-8"
?>
<env:Envelope>
xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
<env:Body>
<tns:GetListClient>
xmlns:tns="http://www.spr.org"
hello
</tns:GetListClient>
</env:Body>
</env:Envelope>
Но веб-сервис 1с, исключает только такие xml-структурированные файлы
<soap:Envelope>
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
<soap:Header/>
<soap:Body>
<m:GetListClient>
xmlns:m="http://www.spr.org"
<m:Param/>
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
</m:GetListClient>
</soap:Body>
</soap:Envelope>
как видите, разница в этих параметрах
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
Код Android
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
request.addProperty("Celsius", "23");
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet = true;
envelope.implicitTypes = true;
envelope.setOutputSoapObject(request);
Log.e("request", request.toString());
HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
androidHttpTransport.debug = true;
try {
androidHttpTransport.call(SOAP_ACTION, envelope,headerProperty);
SoapPrimitive response = (SoapPrimitive) envelope.getResponse();
resultString = response.toString();
Log.e("requestDumpCelsius",androidHttpTransport.requestDump);
Log.e("responseDumpCelsius",androidHttpTransport.responseDump);
} catch (Exception e) {
e.printStackTrace();
resultString = null;
}
if(resultString!=null)
return resultString;
}
это дает мне такое исключение
03-04 12:17:53.723 3932-3945/eu.msdlab.postmobile W/System.err﹕ SoapFault - faultcode: 'soap:Client' faultstring: 'Ошибка разбора SOAP сообщения: неизвестный параметр. ' faultactor: 'null' detail: org.kxml2.kdom.Node@41bf3470
03-04 12:17:53.723 3932-3945/eu.msdlab.postmobile W/System.err﹕ at org.ksoap2.serialization.SoapSerializationEnvelope.parseBody(SoapSerializationEnvelope.java:137)
03-04 12:17:53.723 3932-3945/eu.msdlab.postmobile W/System.err﹕ at org.ksoap2.SoapEnvelope.parse(SoapEnvelope.java:140)
03-04 12:17:53.723 3932-3945/eu.msdlab.postmobile W/System.err﹕ at org.ksoap2.transport.Transport.parseResponse(Transport.java:129)
Мне нужно изменить структуру XML-файла, но PropertyInfo позволяет мне добавить только одно пространство имен
Проблема решена Кажется, я использовал неправильные свойства
1 ответ
Решение
Как я понял твой код, это может быть NAMESPACE
проблема
Попробуйте использовать
private static String NAMESPACE = "http://tempuri.org/";
Если выше не работает, то
private static String NAMESPACE = "xmlns:m="http://www.spr.org"";
Если выше оба не работают для вас, пожалуйста, отправьте WSDL