1

我正在使用下面的代码来重用会话。

我会在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。有什么建议吗?

4

1 回答 1

0

由于您没有显示从第一个响应中获取会话 cookie 的代码,我假设您不是,答案是“不,为第二个请求创建新会话”。

您想从第一个响应中获取会话 ID(和其他)并将它们设置为新请求(即通过将它们添加到容器中)。

旁注:根据身份验证方法,用于验证下一个请求的信息(不同于会话 ID)可能不会出现在 cookie 中。

于 2012-11-23T05:16:43.153 回答