如何称空“ soapAction”?

时间:2019-04-10 13:40:13

标签: android soap android-ksoap2

我正在WSDL中工作,我将Ksoap2用于我的android项目。但是我有一个问题。我们知道,我们可以使用soapAciton URL调用任何操作。这个网址是NAMESPACE + METHOD_NAME。我的Web服务有很多操作,但是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";

我设置操作值并将其封装。当我信封包装;信封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 个答案:

答案 0 :(得分:0)

我解决了这个问题。如果您遇到这个问题;您应该将其添加到信封中。

envelope.dotNet = false;
envelope.setAddAdornments(false);