Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android SOAP WCF服务调用-部分响应_Android_Wcf_Soap - Fatal编程技术网

Android 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

调用基于.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(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);