我无法创建真正的android soap web服务请求

时间:2013-09-06 09:03:09

标签: android web-services android-service ksoap2 android-ksoap2

我正在尝试连接此网络服务

但是当ı开始时,服务没有响应,没有得到任何答案。

我可以使用我的代码调用其他服务,但这有些不同

因为在方法名称之后有<tem:request>而且我的请求不正确

如果有人帮助谢谢

<soapenv:Header/>    <soapenv:Body>
       <tem:GetCityList>
          <!--Optional:-->
          <tem:request>
             <ver:discardHistoryLoggingField>true</ver:discardHistoryLoggingField>
             <ver:callIDField>123</ver:callIDField>
             <ver:cardNumberField>123</ver:cardNumberField>
             <ver:channelIDField>123</ver:channelIDField>
             <ver:customerNumberField>123</ver:customerNumberField>
             <ver:dateField>06/10/11 15:24:17</ver:dateField>
             <ver:deviceBrandField>12</ver:deviceBrandField>
             <ver:deviceModelField>ios</ver:deviceModelField>
             <ver:deviceOSField>ios</ver:deviceOSField>
             <ver:deviceTypeField>sum</ver:deviceTypeField>
             <ver:iPNoField>111111122</ver:iPNoField>
             <ver:idField>3</ver:idField>
             <ver:phoneNumberField>5415132442</ver:phoneNumberField>
             <ver:userCodeField>23</ver:userCodeField>
          </tem:request>
       </tem:GetCityList>    </soapenv:Body> </soapenv:Envelope>

这是我的服务,并且在另一个请求标记内有所有参数。我的代码

 SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME); 

             PropertyInfo fromProp =new PropertyInfo();
                 fromProp.setName("discardHistoryLoggingField");
                 fromProp.setValue(true);
                 fromProp.setType(String.class);
                 request.addProperty(fromProp);

                 PropertyInfo toProp6 =new PropertyInfo();
                 toProp6.setName("deviceOSField");
                 toProp6.setValue("Java");
                 toProp6.setType(String.class);
                 request.addProperty(toProp6);

                // countune to create property...

                 PropertyInfo toProp8 =new PropertyInfo();
                 toProp8.setName("userCodeField");
                 toProp8.setValue("0");
                 toProp8.setType(String.class);
                 request.addProperty(toProp8);


            SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
            envelope.dotNet = true;
            envelope.implicitTypes = true;
             envelope.setOutputSoapObject(request);
             HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);

             try{ 

                 androidHttpTransport.call(SOAP_ACTION, envelope);
           SoapPrimitive response = (SoapPrimitive)envelope.getResponse();
            webResponse = response.toString();

这里的某些事情

请求不正确,因此当我运行应用

时,没有任何事情发生

1 个答案:

答案 0 :(得分:0)

您正在使用org.ksoap2库吗?如果是这样......你的web服务是用asp.net构建的......

他们尝试做这三件事......并说如果你有成功的话:

验证webservice NAMESPACE。它必须完全相同。

我也开发了一个asp.net webservice访问权限,并且当我没有在服务网址的最后添加'/'时,没有任何反应...将你的代码放在服务网址的最后一个字符'/'上。

最后,如果是这样的话,请连接webservice页面扩展名,如下所示:

new HttpTransportSE(URL.concat(".asmx"))