我想使用 C# 中的 WebClient 对象下载一些东西,但下载域要求我登录。如何使用 WebClient 登录并保留 session 数据?我知道如何使用 WebClient 发布数据。
最佳答案
如果您遇到的问题是您可以进行身份验证,但您不能保留身份验证 cookie,这里是 WebClient 的 cookie 感知版本。
private class CookieAwareWebClient : WebClient
{
public CookieAwareWebClient()
: this(new CookieContainer())
{ }
public CookieAwareWebClient(CookieContainer c)
{
this.CookieContainer = c;
}
public CookieContainer CookieContainer { get; set; }
protected override WebRequest GetWebRequest(Uri address)
{
WebRequest request = base.GetWebRequest(address);
var castRequest = request as HttpWebRequest;
if (castRequest != null)
{
castRequest.CookieContainer = this.CookieContainer;
}
return request;
}
}
编辑: 你给我的链接使用了 HTTP POST 的表单例份验证,我没有时间去浏览它,但至少它让你开始使用谷歌。
关于c# - 如何使用 WebClient 登录站点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4740752/