在網上弄了一段代碼,有一個疑問,求解。代碼如下
public class WebClientHelper : WebClient
{
public WebClientHelper(): this(new CookieContainer())
{
}
public WebClientHelper(CookieContainer c)
{
this.CookieContainer = c;
}
public CookieContainer CookieContainer { get; set; }
protected override WebRequest GetWebRequest(Uri address)
{
WebRequest request = base.GetWebRequest(address);
if (request is HttpWebRequest)
{
(request as HttpWebRequest).CookieContainer = this.CookieContainer;
}
return request;
}
/// <summary>
/// 重定向后的url地址
/// </summary>
public string ServerUrl { get; set; }
protected override WebResponse GetWebResponse(WebRequest request)
{
var response = base.GetWebResponse(request);//當代碼執行這里時Cookie就有值了,怎么賦值給Cookie的呢
ServerUrl = response.ResponseUri.Authority;
return base.GetWebResponse(request);
}
var response = base.GetWebResponse(request);當執行了這段代碼時Cookie就有值了,怎么賦值給Cookie的呢
uj5u.com熱心網友回復:
GetWebResponse之后的服務器會把需要的cookie給客戶端,便于鑒權等.假如你想使用爬蟲,或者非常規方式獲取服務器資源,需要自己來設定cookie,繞過部分操作,應該在發送指定請求前進行設定.
這個流程你得明白
uj5u.com熱心網友回復:
偶爾用用爬蟲,不太明白 ,我只是想知道這個值是怎么賦給CookieContainer成員的
uj5u.com熱心網友回復:
這個是獲取的服務端回應過來的Cookie,會自動生成一個CookieContainer,正常流程是在得到回應內容后,把這個CookieContainer保留下來,再賦值給下一下WebRequest。轉載請註明出處,本文鏈接:https://www.uj5u.com/net/253724.html
標籤:C#
上一篇:OpenFileDialog和FolderBrowserDialog只是演示,卻不能打開檔案
下一篇:Bytes相加
