为什么在向 url 执行请求时不能遍历 cookie?

问题描述

我正在尝试向 https://www.footlocker.dk/ 执行获取请求。访问此网址时,我需要获取创建的会话。

我按如下方式执行请求:

            string url = "https://www.footlocker.dk/";

            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
            request.Proxy = null;
            request.CookieContainer = new CookieContainer();

            using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
            {

                foreach (Cookie cookie in response.Cookies)
                {
                    Console.WriteLine("name=" + cookie.Name);
                    Console.WriteLine("value=" + cookie.Value);
                    Console.WriteLine("path=" + cookie.Path);
                    Console.WriteLine("domain=" + cookie.discard);
                    
                }
            }

但是它没有给我任何饼干..

我需要这些 cookie,当我想继续并在之后发出 post 请求时,对这个 url 执行特定操作。

问候!

解决方法

检查响应负载:

您会看到调用:https://www.footlocker.dk/api/session?timestamp=1611587725706 具有如下响应标头:

set-cookie: JSESSIONID=orfy8ma22lox1nd8wxdyf8h4e.fzcxwefapipdb018883; Path=/; HTTPOnly

enter image description here

https://www.footlocker.dk/ 没有设置此类 cookie。请记住,如果你通过调用,你会看到多个 cookie 集,并且你不能绝对确定你需要哪一个来使事情工作,尽管我相信你可以通过制作获得你需要的 cookie会话调用。

最终的 cookie 定义如下所示:

enter image description here