1

我可以通过这种方式从网站获取 html 代码:

public void Test()
{
    WebClient client = new WebClient();
    client.DownloadStringCompleted += 
        new DownloadStringCompletedEventHandler(client_DownloadStringCompleted);
    client.DownloadStringAsync(new Uri("http://testUrl.xml"));
}

void client_DownloadStringCompleted(object sender, 
                                    DownloadStringCompletedEventArgs e)
{
    string html = e.Result;
    //Now do something with the string...
}

但我需要每 30 秒更新一次 html,所以我写道:

public void TestMain()
{

    DispatcherTimer Timer = new DispatcherTimer()
    {
        Interval = TimeSpan.FromSeconds(30)
    };
    Timer.Tick += (s, t) =>
    {
        Test();
    };
    Timer.Start();
}

我更改了xml,但我得到了相同的html,怎么了?

4

1 回答 1

3

中包含一个缓存WebClient。如果您两次请求相同的 URI,第二次它将直接从缓存中获取整个内容。

无法在 上禁用缓存WebClient,因此您有两种解决方法:

  • 使用HttpWebRequest代替WebClient
  • 向 URI 添加一个随机参数:

    client.DownloadStringAsync(new Uri("http://testUrl.xml?nocache=" + Guid.NewGuid()));
    
于 2012-05-08T14:27:45.870 回答