2012-05-08 2 views
1

から、私はこの方法でWebサイトからHTMLコードを取得することができます。取得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... 
} 

しかし、私は更新されたHTML、各30秒を取得する必要があるので、私は書いた:

public void TestMain() 
{ 

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

私が変更しましたXMLは同じHTMLを取得しますが、何が間違っていますか?

+0

多分、前回から変更されていないので、同じHTMLを得ることができますか?... – RhysW

+0

いいえ、もちろんI chang e xmlファイルをチェックし、ウェブサイト上でhtmlの変更を確認してください) – revolutionkpi

+1

あなたはサイトをリフレッシュすることを覚えていますか?キャッシュがリフレッシュされないことがあるので、違いが表示されません。 – RhysW

答えて

3

WebClientにキャッシュが含まれています。同じURIを2回要求すると、2回目にキャッシュから直接コンテンツ全体を取得します。

WebClient上のキャッシュを無効にする方法はありませんので、あなたは、2つの回避策があります。

  • 利用HttpWebRequestの代わりWebClient
  • は、URIにランダムなパラメータを追加します。

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

ありがとう、私は彼の質問に完全に時間を与えた – RhysW

関連する問題