none
WindowsPhone7调用Web Service技术问题 RRS feed

  • 问题

  • windowsphone7调用Web Service返回List数据,怎么接收这个数据。
    ServiceReference1.Service1SoapClient service = new ServiceReference1.Service1SoapClient();
                service.GetCompleted+=new EventHandler<ServiceReference1.GetCompletedEventArgs>(service_GetCompleted);
                service.GetAsync();//这个方法返回List数据 我发布在IIS上

            void service_GetCompleted(object sender, ServiceReference1.GetCompletedEventArgs e)
            {
                if(e.Error==null)
                {
                          怎么在这里接收返回数据
                          e.Result接收不到数据

                          如果返回XML :XElement xe = XElement.Load(e.Result);有问题          

               }
             }

    • 已移动 Jie Bao 2012年8月2日 2:39 (发件人:Windows 8 Metro风格应用开发)
    2012年8月1日 11:12

答案

全部回复

  • 你好,

    首先请设置一下断点查看一下e.result是否有值。

    如果有值的话请修改代码如下 XElement xe = XElement.Load(e.Result.ToString())

    如果e.Result没有返回值请再具体查看一下service class看那边的方法是否有正确的返回值。

    2012年8月2日 3:55
  • <v_document><?xml version="1.0" encoding="UTF-8"?>
    <V_Document>
       <DocID>10000</DocID>
       <MemName>1212</MemName>
       <WeakID>1</WeakID>
       <WorkText>11111</WorkText>
       <WorkResult>22222</WorkResult>
       <WorkQuestion>12</WorkQuestion>
       <DocMemo>2334434</DocMemo>
       <DocPosDate>2012-07-22</DocPosDate>
       <MemID>2000</MemID>
    </V_Document>
    </v_document>

    返回的数据格式是这个样子的,还有很多这样的XML节点,数据相当大。我怀疑是不是方式不对,我想用另外的一个类WebClient。

    2012年8月3日 7:52
  • 你好,

    上面的xml数据是你在service端返回的数据么?那是说e.result还是没有值么?

    如果说数据很大的话,有可能是wcf设置的问题,所以我建议首先配置一下fiddler具体看一下其中http request/responce的信息,看一下异常是什么。然后根据具体的异常再修改WCF的相应配置。

    Windows phone Fiddler配置指南:

    http://blogs.msdn.com/b/fiddler/archive/2011/01/09/debugging-windows-phone-7-device-traffic-with-fiddler.aspx

    2012年8月3日 9:19
  • 感谢在我解决问题时指点我。我们学习技术并不是一蹴而就,而是点点积累。

    我决定在windowsphone调用WebService上使用WebClient对象,这个对象返回的是XML字符串。

    2012年8月5日 13:13
  • yes

    2012年8月6日 3:05