如何调用空"soapAction"?
How to Call Empty "soapAction"?
我在 WSDL 工作,我的 android 项目使用 Ksoap2。但我有一个问题。我们知道,我们用 soapAciton URL 调用任何操作。这个 url 做了,NAMESPACE + METHOD_NAME。我的网络服务有很多操作,但它们的 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";
我设定了我的操作价值观并将它们包裹起来。当我信封包裹时; 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();
}
我们如何解决这个问题?
我已经用下面的代码解决了这个问题:
envelope.dotNet = false;
envelope.setAddAdornments(false);
我在 WSDL 工作,我的 android 项目使用 Ksoap2。但我有一个问题。我们知道,我们用 soapAciton URL 调用任何操作。这个 url 做了,NAMESPACE + METHOD_NAME。我的网络服务有很多操作,但它们的 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";
我设定了我的操作价值观并将它们包裹起来。当我信封包裹时; 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();
}
我们如何解决这个问题?
我已经用下面的代码解决了这个问题:
envelope.dotNet = false;
envelope.setAddAdornments(false);