2013-10-26 80 views
1

一直在尋找解決方案,但我還沒有能夠得到一個結果,回答我的問題。C#使用HttpClient瀏覽網站WP

我正在尋找一種方法來通過網站(基本上讀取html),使用HttpClient。我正在爲Windows Phone開發一個應用程序,因此可能會禁用某些選項。

我想做一個程序,去一個網站,登錄,然後能夠檢索訪問html源代碼。

因此,當我登錄時,會話ID保存在CookieContainer中,因此我將能夠訪問需要登錄的網站。我將如何使用HttpClient執行此操作:)?

回答

2

HttpClient自動爲您管理身份驗證Cookie。只要確保你重複使用同一個HttpClient實例來處理多個請求。在封面下,HttpClient創建一個具有CookieContainer的HttpClientHandler實例。

這是一個登錄到NerdDinner站點並檢索受保護頁面的示例。

 var httpClient = new HttpClient(); 

     // Create login payload 
     var body = new Dictionary<string, string>() 
     { 
      {"UserName", "bob"}, 
      {"Password", "xyz"}, 
      {"RememberMe", "false"} 
     }; 
     var content = new FormUrlEncodedContent(body); 

     // POST to login form 
     var response = await httpClient.PostAsync("http://www.nerddinner.com/Account/LogOn?returnUrl=%2F", content); 

     // Make new request to secured resource 
     var myresponse = await httpClient.GetAsync("http://www.nerddinner.com/Dinners/My"); 

     var stringContent = await myresponse.Content.ReadAsStringAsync(); 
+0

一直在嘗試這個,看起來我實際上正在某處! :D – Jazerix

+0

@Jazerix不要忘記使用AMR建議的HTML Agility Pack –