C# HttpWebResponse not seeing cookies

本文关键字:cookies seeing not HttpWebResponse | 更新日期: 2023-09-27 18:37:18

我正在尝试使用HttpWebRequest登录雅虎!,但我无法获得他们设置的初始cookie。我不确定这是否是我Request/Response的问题,如果他们以某种邪恶的方式设置 cookie 以防止此类活动。

因此,这是我Connect()方法的第一部分,首先只是获取登录页面,因此我获得了身份验证隐藏字段和cookie:

    public void Connect()
    {
        var LoginUrl = "https://login.yahoo.com/config/login";
        var cookieContainer = new CookieContainer();
        // First get a login page to grab some important values
        var request = WebRequest.Create(LoginUrl) as HttpWebRequest;
        request.Method = "GET";
        request.CookieContainer = cookieContainer;
        Console.WriteLine(request.SupportsCookieContainer);
        var response = request.GetResponse() as HttpWebResponse; /* LINE:30 */
        var loginPageText = string.Empty;
        using (var reader = new StreamReader(response.GetResponseStream()))
        {
            loginPageText = reader.ReadToEnd();
        }
    }

如果我检查第 30 行的 response 对象,我什至看不到任何Set-Cookie标题。如果我在Chrome中手动访问同一页面,我会看到以下标题被发回:

Set-Cookie:B=bgg40ppbditpf&b=3&s=4s; expires=Mon, 05-Mar-2018 11:53:19 GMT; path=/; domain=.yahoo.com

什么可能导致这些标头不显示?

C# HttpWebResponse not seeing cookies

我也看不到cookie,但是如果我假装是浏览器:

request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.75 Safari/537.36";

response.Cookies[0]已设置。