Я работаю в WSDL и использую Ksoap2 для своего проекта Android. Но у меня была проблема. Мы знаем, мы вызываем любую операцию с URL-адресом soapAciton. Этот URL создан, NAMESPACE + METHOD_NAME. У моих веб-сервисов было много операций, но мыльные действия пусты.
Источник 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";
Я задаю свои значения для работы и конвертирую их. Когда я конвертирую пакет; конверт 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();
}
Как мы можем решить эту проблему?
Я решил проблему с помощью следующего кода:
envelope.dotNet = false;
envelope.setAddAdornments(false);