2012-05-08 6 views
1

에서 나는이 방법은 웹 사이트에서 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

아니, 물론 내가 전자 XML 파일을 확인하고 웹 사이트에서 html 변경 확인) – revolutionkpi

+1

사이트를 새로 고침하는 것을 기억하십니까? 때로는 캐시를 새로 고치지 않으므로 차이가 보이지 않습니다. – RhysW

답변

3

WebClient에 캐시가 있습니다. 동일한 URI를 두 번 요청하면 두 번째로 전체 내용을 캐시에서 직접 가져옵니다.

WebClient에 캐시를 비활성화하는 방법은 없습니다, 그래서 당신은 두 가지 해결 방법이 있습니다

  • 사용 HttpWebRequest 대신 WebClient
  • 이 URI에 임의의 매개 변수를 추가 :

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

감사합니다, 정확하게 그의 질문에 그에게 준 코멘트로 안으로 적합하다 시간을 정밀하게 잰다 – RhysW

관련 문제