#android #soap #android-ksoap2
#Android #soap #android-ksoap2
Вопрос:
Я работаю в WSDL и использую Ksoap2 для своего проекта Android. Но у меня была проблема. Мы знаем, что мы вызываем любую операцию с URL soapAciton. Этот URL создан, ПРОСТРАНСТВО ИМЕН ИМЯ_МЕТОДА. В моих веб-сервисах было много операций, но они soapActions пусты.
Источник WSDL:
<wsdl:operation name="PLTR1">
<soap:operation soapAction="" style="document"/>
<wsdl:input name="PLTR1">
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output name="PLTR1Response">
<soap:body use="literal"/>
</wsdl:output></wsdl:operation>
Итак, я даю эти значения в своем проекте Android;
private static final String METHOD_NAME = "PLITR1";
private static final String NAMESPACE = "http://****.com/";
private static final String SOAP_ACTION = "";
private static final String URL = "http://**.**.**.**/***/*****?WSDL";
Я устанавливаю свои значения для работы и огибаю их. Когда я конвертирую package; envelope bodyOut сохраняет мои значения. Но, когда я устанавливаю с помощью SoapPrimitive, я принимаю нулевые значения. Я думаю, это будет мой SOAP_ACTION пуст.
HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
try {
androidHttpTransport.debug=true;
androidHttpTransport.call(SOAP_ACTION,envelope);
SoapPrimitive result = (SoapPrimitive) envelope.getResponse();
textView.setText(result.toString());
} catch (IOException e) {
e.printStackTrace();
} catch (XmlPullParserException e) {
e.printStackTrace();
}
Как мы можем решить эту проблему?
Ответ №1:
Я решил проблему с помощью следующего кода:
envelope.dotNet = false;
envelope.setAddAdornments(false);