none
webclient刷新的问题 RRS feed

  • 问题

  • 为什么webclient无法定时获取资源
    设置了一个定时器 每隔10s去请求一次cgi服务
    如 timer_clik()
    {
            webclient webc=new webclient();
            webc.openreadAs..(uri(192.0.0..1));
            webc.openreadcompled +=  dowload()
    }
    dowload( e)   //请求完毕之后是一个流
    {
         然后我把流的内容显示。
        为什么显示的都是第一次下载的。(不管定时器多少次调用。)
        e.result.dispose()也没有用。

        为什么这个流无法更新。(我请求服务的内容早就变了。)
        折腾了很久也每尝试出来。

      再问。这个下载过来的东西存在什么地方。?为什么我总是第一次请求的数据。
     ?????奇怪
    }

    2009年3月5日 13:36

答案

  • 已经解决了.
    原因是因为缓存机制导致的的.
    第一次调用后在客户机上已经存储了该服务的放回值.
    所以等到下次调用的时候发现你请求的服务路径还是上一次请求的.所以就返回上次请求的值
    然后继续缓存.

    解决方案.在请求的路径后加上参数(如果确定请求的地址可以这样做的情况下)..如 www.google.com?pam=Random.next()
    总之你通过各种方式改变请求的路径都可以实现


    希望对大家有帮助.
    • 已标记为答案 KeFang Chen 2009年3月11日 8:58
    • 取消答案标记 KeFang Chen 2009年3月11日 8:58
    • 已标记为答案 Yi-Lun Luo 2009年3月11日 10:40
    2009年3月5日 16:06

全部回复

  • 已经解决了.
    原因是因为缓存机制导致的的.
    第一次调用后在客户机上已经存储了该服务的放回值.
    所以等到下次调用的时候发现你请求的服务路径还是上一次请求的.所以就返回上次请求的值
    然后继续缓存.

    解决方案.在请求的路径后加上参数(如果确定请求的地址可以这样做的情况下)..如 www.google.com?pam=Random.next()
    总之你通过各种方式改变请求的路径都可以实现


    希望对大家有帮助.
    • 已标记为答案 KeFang Chen 2009年3月11日 8:58
    • 取消答案标记 KeFang Chen 2009年3月11日 8:58
    • 已标记为答案 Yi-Lun Luo 2009年3月11日 10:40
    2009年3月5日 16:06
  • 嗯,这个问题很普遍,加随机参数是一种比较普遍的解决办法,你也可以
    在webRequest请求的页面上加上不缓存属性也可以。

    My blog: http://blog.csdn.net/dotfun http://dotfun.cnblogs.com

    My contact: QQ:372900288 E-mail:372900288@qq.com msn:sellnet007@hotmail.com

    2009年3月6日 2:01
    版主