我正在尝试登录到Yahoo!使用HttpWebRequest
,但我无法获取它们设置的初始cookie。我不确定这是否与我的Request/Response
存在问题,如果他们以某种恶意方式设置cookie以阻止此类活动。C#HttpWebResponse没有看到cookies
因此,这里是我的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();
}
}
如果我检查response
对象在第30行,我甚至没有看到任何Set-Cookie
标题。如果我手动访问同一页面在Chrome中,我看到了下面的头被送回:
Set-Cookie:B=bgg40ppbditpf&b=3&s=4s; expires=Mon, 05-Mar-2018 11:53:19 GMT; path=/; domain=.yahoo.com
什么会导致这些头不出现?
@RJK这些日子里有没有关于强迫宫缩的政策? – Cylindric
很酷。绝对没有人。我认为这可能会提高一些可读性。没有改进?不仅收缩,另外我做了一些改进。我不是吗? :) – RajeshKdev