none
webclient 连续请求不同的数据,如何在回调函数据中判断这是哪一次返回的数据,因为每次请滶返回的数据种类都不一样 RRS feed

  • 问题

  • 如果我用 webclient 连续请求三种,每次请求的 url不同,返回的数据也不同,在返回函数中如何判断这是哪一次数据,因为每次返回的数据都不同类
    void test(strinp id)
    {
    WebClient client = new WebClient();
                client.DownloadStringCompleted += new DownloadStringCompletedEventHandler(client_DownloadStringCompleted);
                client.DownloadStringAsync((new Uri("http://localhost:7272/ss/cs.ashx?para="+id)));
    }
    void client_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
            {
    //在这里何区别返还是哪一类数据。当然如果我在返回 的 e.result作个标记,是能区别,但这样做有点烦
                    throw new NotImplementedException();
            }
    2009年6月30日 9:00

答案

全部回复

  • 你这返回的都是字符流吧,按你的规范截断字符串就好了
    2009年6月30日 15:00
    版主
  • client.DownloadStringAsync((new Uri("http://localhost:7272/ss/cs.ashx?para="+id)));

    这行用另一个overload 方法,DownloadStringAsync(Uri, Object) 然后提供一个自己定义的object,这样在callback里就可以分辨了。
    2009年6月30日 17:44
  • 返回的http头里应该有流的  url阿



    紫柔版主的头像真叫萌得一个不行啊。。。。
    答案800 撒花
    2009年7月1日 0:23
  • 在返回的内容里面加入你传入的ID。
    我从里请求的URL(http://localhost:7272/ss/cs.ashx?para="+id))连接里面可以看出 你传入了一个id到后台。然后你准备在返回事件里(e.Result)里面取出返回的值吧!
    因为都是异步操作,所以在你返回的值里面你要把原来传入的id加在里面,这样你就可以得到了。
    例如你返回的内容是一个xml :" <User><UserName>陈陈</UserName></User>"  为了区别返回的这个数据你在<User/>里面加入一个id  
      "<User><id>00000</id><UserName>陈陈</UserName></User>" 
    呵呵!不知道我说的你理解了没?
    283440946 也可以这样联系我


    努力!写一个js解析器,一个svg插件,一个绘图程序,做好自己,呵呵~!
    2009年7月1日 6:49
    版主