我正在尝试从 Web 服务器下载文件,例如
http://web.server.com/getfile=2
现在在网络浏览器中我可以做到这一点,因为我已经验证了自己并且可以查看允许访问文件的 cookie。
我做了相当多的研究,并相信 cookie 容器会保存 cookie,尽管我无法确定如何使用 CookieContainer 从 C# 中下载此文件
在 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;
}
}
向包含 cookie 的页面发出 HTTP get 请求,存储 cookie 并附加到 getfile 的第二个请求。
待办事项:添加示例