1

我正在尝试从 Web 服务器下载文件,例如

http://web.server.com/getfile=2

现在在网络浏览器中我可以做到这一点,因为我已经验证了自己并且可以查看允许访问文件的 cookie。

我做了相当多的研究,并相信 cookie 容器会保存 cookie,尽管我无法确定如何使用 CookieContainer 从 C# 中下载此文件

4

2 回答 2

4

在 c# 中,您应该使用 WebClient。虽然它可以独立使用,但这样的代码将减少您每次添加 cookie 标头的麻烦。

public class CookieAwareWebClient : WebClient
{
    private readonly CookieContainer m_container = new CookieContainer();

    protected override WebRequest GetWebRequest(Uri address)
    {
        WebRequest request = base.GetWebRequest(address);
        HttpWebRequest webRequest = request as HttpWebRequest;
        if (webRequest != null)
        {
            webRequest.CookieContainer = m_container;
        }
        return request;
    }
}
于 2012-06-07T18:09:38.047 回答
1

向包含 cookie 的页面发出 HTTP get 请求,存储 cookie 并附加到 getfile 的第二个请求。

待办事项:添加示例

于 2012-06-07T17:49:31.857 回答