2015-04-01 53 views
1

我目前正在處理的東西,它需要我在每次運行該函數時都獲取新版本的源代碼。這是目前的代碼。強制HttpClient獲取源代碼的新版本

static class DataManager 
{ 
    public static async void CollectData() 
    { 
     HttpClient client = new HttpClient(); 

     // Call asynchronous network methods in a try/catch block to handle exceptions 
     try 
     { 
      string responseBody = await client.GetStringAsync("http://www.lipsum.com"); 

      ParseHTML(responseBody); 
     } 
     catch (HttpRequestException e) 
     { 
      Console.WriteLine("Error: {0}", e.Message); 
     } 

     // Need to call dispose on the HttpClient object 
     // when done using it, so the app doesn't leak resources 
     client.Dispose(); 
    } 
    public static void ParseHTML(string _responseString) 
    { 
     HtmlAgilityPack.HtmlDocument document = new HtmlAgilityPack.HtmlDocument(); 

     document.LoadHtml(_responseString); 

     HtmlAgilityPack.HtmlNode contrib = document.DocumentNode.SelectSingleNode("//*[contains(@class,'randomclass')]"); 

     Console.WriteLine(contrib.InnerText.Replace(",", "")); 
    } 
    public static void UpdateLabels(string _timer, string _participants) 
    { 

    } 
} 

我想知道是否有一種方法可以讓我在每次運行函數時都得到一個新版本的網站。

我通過鍵入

DataManager.CollectData(); 
+0

這裏有什麼問題? – 2015-04-01 21:29:32

+1

您可以將當前版本與服務器版本進行比較,並進行必要的清理/更新 – user2526236 2015-04-01 21:31:18

+0

@Praveen Paulose問題在於,每次請求時都沒有獲取網站的版本。我要求網站的絕對最新版本。 – 2015-04-01 21:32:13

回答

1

運行它你有沒有嘗試過:

var client = new HttpClient(new WebRequestHandler() { 
    CachePolicy = new HttpRequestCachePolicy(HttpRequestCacheLevel.NoCacheNoStore) 
}); 
     try 
    { 
     string responseBody = await client.GetStringAsync("http://www.lipsum.com"); 

     ParseHTML(responseBody); 
    } 
    catch (HttpRequestException e) 
    { 
     Console.WriteLine("Error: {0}", e.Message); 
    } 

看一看在HttpRequestCacheLevel枚舉 - 有相當多,可以幫助您幾個選項。

+0

非常感謝,現在就試試:) – 2015-04-01 22:08:18

+0

嘿,它也沒有工作。還有什麼想法? – 2015-04-01 22:13:03