繁体   English   中英

使用Cookie(httpWebRequest,c#)

[英]using cookies (httpWebRequest,c#)

我在网站上阅读了有关httpWebRequest和Cookies的完整答案,但是我的问题仍然没有解决。 我有一个winform应用程序登录到网站(正确登录),但是我不能使用它的cookie来登录另一个页面,我尝试了许多解决方案,例如使用PHPSESSID,在两个请求中都使用一个CookieContainer,但都没有是有效的。 这是我的代码:

           HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create("(Login page)");

        webRequest.Method = "POST";
        webRequest.ContentType = "application/x-www-form-urlencoded";
        webRequest.KeepAlive = true;

        ASCIIEncoding encoding = new ASCIIEncoding();
        byte[] data = encoding.GetBytes("username=uname&password=pass&submit=Button");

        webRequest.ContentLength = data.Length;
        CookieContainer CookieContainer = new CookieContainer();
        webRequest.CookieContainer = CookieContainer;


        Stream newStream = webRequest.GetRequestStream();
        newStream.Write(data, 0, data.Length);
        newStream.Close();
        HttpWebResponse webResponse;
        webResponse = (HttpWebResponse)webRequest.GetResponse();
        HttpWebRequest webRequest1 = (HttpWebRequest)WebRequest.Create("(My control panel page)");
        webRequest1.Method = "GET";
        webRequest1.KeepAlive = true;
        webRequest1.CookieContainer=new CookieContainer();
        foreach (Cookie cook in webResponse.Cookies)
        {
            webRequest1.CookieContainer.Add(cook);
        }
        webRequest.ContentType = "application/x-www-form-urlencoded";

        webResponse = (HttpWebResponse)webRequest1.GetResponse();



        string html;
        using (Stream strmresponse = webResponse.GetResponseStream())
        {
            using (StreamReader reader = new StreamReader(strmresponse, Encoding.UTF8))
            {
                html = reader.ReadToEnd();
            }
        }
        textBox1.Text = html;

不知道您是否仍然在乎,但是请检查出此问题的答案,因为它显示了如何将Cookie重复用于多个请求。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM