【问题标题】:How to send data to a Soap service?如何将数据发送到 Soap 服务?
【发布时间】:2017-12-13 08:52:52
【问题描述】:

Soap service 需要以下操作:

<wsdl:operation name="UploadFile">
<soap:operation soapAction="http://abcdotcom/IDocUpload/UploadFile" style="document"/>
<wsdl:input name="FileInfo">
<soap:header message="tns:FileInfo_Headers" part="Name" use="literal"/>
<soap:header message="tns:FileInfo_Headers" part="Length" use="literal"/>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output name="DownloadRequest">
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>

我正在使用ksoap2 library。我无法弄清楚如何将数据发送到服务? 我正在尝试

request.addProperty("FileInfo", "123"); 

但它只是给了我null 的响应。我至少期待error。请帮忙。

【问题讨论】:

  • 请提供您遇到的错误?
  • 我只是得到一个空结果。完全没有反应。
  • @Ali_Waris 如果您收到空响应,那么您确定您发送的是有效请求吗?你调试过你的代码吗?

标签: java android soap android-ksoap2


【解决方案1】:

android中的soap请求示例(方法:FetchUserDetails)

SoapObject request = new SoapObject("http://tempuri.org/", "FetchUserDetails");
request.addProperty("key", value);
        SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
        envelope.setOutputSoapObject(request);
        envelope.dotNet = true;
        try {
            HttpTransportSE androidHttpTransport = new HttpTransportSE(ServiceURL);
            androidHttpTransport.call("http://tempuri.org/FetchUserDetails", envelope);
            SoapObject response = (SoapObject) envelope.getResponse();
            int count = response.getPropertyCount();
            if (count > 0) {
             //handel the response
             SoapObject results = (SoapObject) response.getProperty(i);
           }
       }catch (Exception e) {
            Log.e("service", e.getMessage());
      }

【讨论】:

  • 当我评估信封.getResponse() 时,它每次都显示为空。
  • 您能否指导我如何使用 addProperty() 来支持我在上面分享的 Soap 服务所期望的输入类型。
猜你喜欢
  • 2012-11-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多