Android SOAP WCF服务调用-部分响应
调用基于.NET 4.0 Soap的WCF服务。调用过程中没有异常,代码运行正常。Android SOAP WCF服务调用-部分响应,android,wcf,soap,Android,Wcf,Soap,调用基于.NET 4.0 Soap的WCF服务。调用过程中没有异常,代码运行正常。问题是soap Respone只包含起始xml标记和结束标记,但没有正文。解析xml可能有问题,或者我们需要基于REST的WCF服务进行通信。此外,返回的XML相当大(约50-150kb) 以下是我正在使用的代码: SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME); SoapObject param = new SoapObject(NAMESP
问题是soap Respone只包含起始xml标记和结束标记,但没有正文。
解析xml可能有问题,或者我们需要基于REST的WCF服务进行通信。此外,返回的XML相当大(约50-150kb) 以下是我正在使用的代码:
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
SoapObject param = new SoapObject(NAMESPACE, METHOD_NAME);
request.addProperty("CompanyID",CompanyId);
request.addProperty(METHOD_NAME, param);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
SoapEnvelope.VER11);
envelope.dotNet = true;
envelope.setOutputSoapObject(request);
AndroidHttpTransport androidHttpTransport = new AndroidHttpTransport(URL);
androidHttpTransport.call(SOAP_ACTION,envelope);
response = (SoapObject) envelope.getResponse(); //Only starting xml tag is returned
在调试器中看到的响应对象包含常用的SoapObject属性,向下钻取包含SoapPrimitive“”中的值对象。但是web服务正在返回此元素中的大量数据。那在哪里
更新:返回一个小xml字符串后,使用KSOAP的android应用程序将获得完整的xml,并能够使用上述代码对其进行解析
编辑:WCF Web服务方法
public string GetOffersString(string companyID)
{
DataTable dtGetTopOffers;
dtGetTopOffers = SprocWrapper.PROC_GETTOPOFFERS(companyID);
dtGetTopOffers.TableName = "GETTOPOFFERS";
XElement xGetTopOffers = Common.SerializeDataTable(dtGetTopOffers);
XmlDocument doc = new XmlDocument();
doc.LoadXml(xGetTopOffers.Value);
return doc.InnerXml;
}
键入的参数名称不正确。更改以下行
request.addProperty("CompanyID",CompanyId);
到
修正了这个问题
request.addProperty("companyID",CompanyId);