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
什么可能导致这些标头不显示?
我也看不到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]
已设置。