我正在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();
}
我们如何解决这个问题?
答案 0 :(得分:0)
我解决了这个问题。如果您遇到这个问题;您应该将其添加到信封中。
envelope.dotNet = false;
envelope.setAddAdornments(false);