[英]C# httpwebrequest cookies
我正在使用以下代碼來重用會話。
我將在grabUrl響應cookie上獲得相同的會話ID嗎?
我如何知道兩個請求是否使用相同的會話/ cookie?
謝謝。
CookieContainer cookCon = new CookieContainer();
Httpwebrequest loginReq = (httpwebrequest) loginReq.create(loginurl);
loginReq.cookiecontainer = cookCon;
... All the response stuffs
Httpwebrequest grabReq = (httpwebrequest) grabReq.create(grabUrl);
grabUrl.cookiecontainer = cookCon
當我在下面的代碼中添加以查看容器內容時,它表明存在一個會話ID:
foreach (Cookie cook in cookieContainer.GetCookies(new Uri(loginurl)))
{
Console.WriteLine("Cookie_Get_Container:");
Console.WriteLine("====================================================");
Console.WriteLine("String: {0}", cook.ToString());
Console.WriteLine("====================================================");
}
因此,我在登錄響應中添加了cookie:
cookieContainer.Add(new Uri(domainUrl), loginRes.Cookies);
當我嘗試從cookieContainer.grabRes.Cookies獲取時,我無法獲取會話ID。 有什么建議嗎?
由於您沒有顯示從第一次響應中獲取會話cookie的代碼,因此我認為您不是,並且答案為“否,將為第二個requset創建新會話”。
您想從第一個響應中獲取會話ID(及其他),並在新請求上進行設置(即通過將其添加到容器中)。
旁注:根據身份驗證方法,用於身份驗證下一個請求的信息(與會話ID不同)可能不會包含在cookie中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.