我想在C#中使用WebClient对象下载某些内容,但下载域需要我登录。如何使用WebClient登录并保存会话数据?我知道如何使用WebClient发布数据。如何使用WebClient登录网站?
29
A
回答
47
如果您遇到的问题是您可以进行身份验证,但您无法在此处保留身份验证Cookie,那么此Cookie是Cookie识别的WebClient版本。
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,我没有走,虽然它的时间,但至少它可以让你与谷歌开始。
-1
看看使用Credentials属性。例如。如果使用基本身份验证,则必须使用正确的用户名和密码将该属性设置为NetworkCredential的实例。
sample指向显示如何使用当前登录的用户凭据的请求。
相关问题
- 1. C#WebClient登录网站
- 2. 使用WebBrowser登录网站后使用WebClient下载文件
- 3. 如何使用python登录网站?
- 4. 如何使用iOS登录网站
- 5. 如何使用vba登录网站?
- 6. 如何使用HttpWebRequest登录网站?
- 7. 如何使用HttpWebRequest登录到网站
- 8. 如何使用Python登录到网站?
- 9. 如何使用python3.2 urllib登录网站?
- 10. 如何使用DotNetOpenAuth登录网站?
- 11. Java - 如何使用HtmlUnit登录网站?
- 12. 如何使用Selenium Java登录网站?
- 13. 使用WebClient或HttpWebRequest登录
- 14. 使用ASIHttpRequest登录网站
- 15. 使用C登录网站#
- 16. 使用python登录网站
- 17. 使用java登录网站
- 18. 使用casperjs登录网站
- 19. 使用casperjs登录网站?
- 20. 使用python登录网站
- 21. 使用RSelenium登录网站
- 22. 使用httpulrconnection登录网站
- 23. 使用Gmail登录网站
- 24. 如何使用python登录到网站(wifi登录页面)?
- 25. 如何使C#登录到网站
- 26. Dertermine如果用户使用Facebook或网站登录登录?
- 27. 从网站登录网站
- 28. 如何使用JavaScript使用登录弹出窗口登录网站?
- 29. 网站如何使用第三方登录ID登录到网站时使用stackoverrflow?
- 30. 用java登录HTTPS网站
服务器需要什么样的身份验证机制?基本,窗体,Windows/NTLM? – 2011-01-19 21:12:29
大声笑我解决了这个问题,通过从Firefox浏览器中查找maunally来添加数值:) webClient.Headers.Add(“Cookie”,“PHPSESSID = xxxxxxx; mosesuser = xxxxxxx;”); – MonsterMMORPG 2011-01-19 21:59:18
哪些值?你的意思是真正的auth cookie吗?请记住,该值可能会过期,并且不能在以后重新使用。 – 2011-01-19 22:50:28