我在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();
}
我们如何解决这个问题?
我解决了这个问题。如果你住这个问题;你应该为信封添加这个。
envelope.dotNet = false;
envelope.setAddAdornments(false);