簡體   English   中英

C#httpwebrequest cookie

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM