从网站获取HTML

时间:2012-05-08 14:05:42

标签: c# silverlight windows-phone-7 httpwebrequest

我可以通过这种方式从网站上获取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,出了什么问题?

1 个答案:

答案 0 :(得分:3)

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

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

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

    client.DownloadStringAsync(new Uri("http://testUrl.xml?nocache=" + Guid.NewGuid()));