猿问

如何使用WebClient登录网站?

我想使用C#中的WebClient对象下载某些内容,但是下载域要求我登录。如何使用WebClient登录并保留会话数据?我知道如何使用WebClient发布数据。



互换的青春
浏览 616回答 3
3回答

慕尼黑5688855

如果您遇到的问题是可以进行身份验证,但不能保留身份验证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进行表单身份验证,尽管我没有时间走,但至少它使您从Google入手。

达令说

看一下使用凭据属性。例如,如果使用基本身份验证,则必须将属性设置为具有正确用户名和密码的NetworkCredential实例。所指向的样本显示了如何使用当前登录的用户凭据进行请求。

森栏

我知道了。服务器使用表单身份验证。这要求您将用户名和密码发布到登录页面html中指定的操作url中。您还必须使用cookie容器,以接收对该帖子的响应随附的auth cookie。
随时随地看视频慕课网APP
我要回答