2016-08-14 450 views
1

我想使用WebRequest和HttpClient,但是當我沒有看到Cookie調試時,請求Cookie「Request Header」而不是「Reponse Header」鏈接「https://www.udemy.com/join/login-popup/」 請幫我寫在C#我發現試圖找到一切可能的方式,但我還沒有找到。如何在C#中響應後獲取請求頭的Cookie#

+1

客戶端從服務器接收到一個cookie後設置cookie,因此如果您設置了它,您就已經擁有它了。你用CookieContainer設置cookie,但是你必須先從服務器獲取一個。 – Crowcoder

回答

1

使用System.Net.Http.HttpClient例如,我們可以得到餅乾像以下:

var myClientHandler = new HttpClientHandler(); 
myClientHandler.CookieContainer = new CookieContainer(); 

var client = new HttpClient(myClientHandler); 

var response = await client.GetAsync("https://www.udemy.com/join/login-popup/"); 

var cookieCollection = myClientHandler.CookieContainer.GetCookies(new Uri("https://www.udemy.com/join/login-popup/")); 

foreach (var cookie in cookieCollection.Cast<Cookie>()) 
{ 
    Debug.WriteLine(cookie); 
} 

HttpClient節省了由服務器發送並自動將它們添加到相同的應用程序容器中後續的請求到URI的cookie。因此,如果我們沒有手動修改cookie,「Request Header」中的cookie應該與以前的響應中返回的一樣。

相關問題