Как вызвать пустой «SOAPAction»?

#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);