C#获取或设置cookies,使用cookies从web下载内容

C#获取或设置cookies,使用cookies从web下载内容,c#,cookies,c#-4.0,httpwebrequest,setcookie,C#,Cookies,C# 4.0,Httpwebrequest,Setcookie,我需要帮助做饼干。我计划用cookies下载网页内容。要获取内容,我需要登录网站,因为只有授权用户才能下载web内容或文件。我正在使用 HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 然后我正在抓取源代码,我需要获取到文件的链接,但我无法获取,因为我没有授权,所以我需要设置cook

我需要帮助做饼干。我计划用cookies下载网页内容。要获取内容,我需要登录网站,因为只有授权用户才能下载web内容或文件。我正在使用

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
然后我正在抓取源代码,我需要获取到文件的链接,但我无法获取,因为我没有授权,所以我需要设置cookies。我以前从未做过饼干。
我该怎么做呢?

你能更具体地说明一下这个项目吗?它是桌面应用程序、ASP.NET、ASP.NET MVC吗


在ASP.NET MVC中,每当用户登录时,我都使用SetPersistenCookie方法,对于我使用Authorize属性的方法,每当用户想要访问某个服务器但未登录时,它都会将其重定向到登录页…

如果您正在谈论创建一个可以创建cookie的ASP.NET web应用程序,那么这样做应该有效:

虽然不确定这在asp.net mvc中是否有效,但它在asp.net web窗体中有效

Response.Cookies["nameOfCookie"].Value = "someValue";
Response.Cookies["nameOfCookies].Expires = DateTime.Now.AddDays(1);
然后在同一页或不同页的帖子上,可以通过

string value = string.Empty;
if (Request.Cookies["nameOfCookie"] != null)    
    value = Request.Cookies["nameOfCookie"].Value; 

我创建了一个快速的小应用程序,可以帮助我生成web请求

public class HttpRequestHandler {
    private CookieContainer cookies;

    public HttpRequestHandler() {
        cookies = new CookieContainer();
    }

    public HttpWebRequest GenerateWebRequest(string url) {
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(new System.Uri(url));

        request.CookieContainer = cookies;
        request.AllowAutoRedirect = true;
        request.KeepAlive = true;
        request.Referer = HttpUtility.UrlEncode(referer);
        request.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.8) Gecko/2009021910 Firefox/3.0.7 (.NET CLR 3.5.30729)";
        request.Headers.Add("Pragma", "no-cache");
        request.Timeout = 40000;

        return request;
    }
}
你的问题可能与缺少烹饪容器有关。如果创建cookie容器,则可以在web请求中保存/使用cookie。

应将HTTPWebRequest类的属性设置为类的实例。根据,声明如下:

CookieContainer默认为空。必须将CookieContainer对象分配给属性,才能在GetResponse方法返回的HttpWebResponse的cookies属性中返回Cookie


换句话说,在代码中设置HTTPWebRequest对象的CookieContainer属性后,可以在代码中的HTTPWebResponse对象中获得相应的cookie。上面共享的MSDN链接中的示例代码应该可以让您开始使用。

它是针对C#windows窗体的。。。项目简介:使用c#从web源代码中删除,剪切源代码示例:链接、内容、照片、数据。当我试图获得源代码时,我得到的是我不需要的源代码。这就是我需要设置cookies以获得正确的源代码的方法。请帮助我。感谢大家的时间和努力。SolvedThank谢谢。在浏览器的网页中,我可以看到head JavaScript,有两个位置:函数SetCookie(名称、值、天数){expires=new Date(today.getTime()+days*24*60*60*1000);因此,我需要在容器中设置3个值:名称、值、天数。代码会是什么样子?感谢所有人的时间和努力。解决方案既然你说你解决了它,那么你应该发布你使用的答案,或者选择你找到的解决它的答案,以便其他人能够受益。