2012-06-07 104 views
1

我试图从网络服务器下载文件,例如使用Cookie从URL下载文件

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

现在,在Web浏览器中我能做到这一点,因为我已经验证自己,可以查看该cookie允许访问该文件。

我做的研究公平一点,并相信一个cookie容器就拿着饼干,虽然我无法确定如何,那么你可以从C#中使用的CookieContainer

+1

进行GET请求方含网页的Cookie,存储cookie,并连接到第二个请求GETFILE –

+0

谢谢你,那只是简单的逻辑,我需要!谢谢:) –

+0

祝你好运,并标记它的答案;) –

回答

1

下载这个文件做一个HTTP GET请求到包含cookie的页面,存储cookie并附加到getfile的第二个请求。

TODO:添加样品

4

在C#中,你应该使用Web客户端。 尽管它可以独立使用,但像这样的代码可以减少您每次添加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; 
    } 
}