-1

我需要从登录中获取 cookie,因为我将在同一页面中应用此 cookie。这是我的代码

        string boundary = "41184676334";
        string username = "username";
        string password = "password";


        string login_post_data =
               "POSTDATA=-----------------------------" + boundary  +
               "\nContent-Disposition: form-data; name=\"login\"" +
               "\n\n" + username  +
               "\n-----------------------------" + boundary  +
               "\nContent-Disposition: form-data; name=\"key\"" +
               "\n\n" + password  +
               "\n-----------------------------" + boundary  +
               "\nContent-Disposition: form-data; name=\"clcode\"" +
               "\n\n" +
               "\n-----------------------------" + boundary  + "--";

        var cookies = new CookieContainer();

        HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://site.com/cgi-bin/login.pl?logout");
        request.CookieContainer = cookies;



        request.Method = "POST";
        request.ContentType = "multipart/form-data; boundary=---------------------------" + boundary;

        request.Host = "site.com";
        request.UserAgent = "Mozilla/5.0 (Windows NT 5.1; rv:14.0) Gecko/20100101 Firefox/14.0.1";
        request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
        request.Referer = "https://site.com/cgi-bin/login.pl?logout";
        //request.Headers.Add("POSTDATA", post_data);

       using (var requestStream = request.GetRequestStream())
       {
           requestStream.Write(StrToByteArray(login_post_data), 0, StrToByteArray(login_post_data).Length);
        }



        HttpWebResponse response = (HttpWebResponse)request.GetResponse();



        using (Stream stream = response.GetResponseStream())
        {


            StreamReader reader = new StreamReader(stream);

            string temp = reader.ReadToEnd();
            richTextBox1.Text = temp;
        }


        foreach (string c in response.Cookies)
        {
            listBox1.Items.Add(c);
        }

事情是“https://site.com/cgi-bin/login.pl?logout”是我登录后的同一页面,我需要传递cookie

4

1 回答 1

0

看起来您尝试在发送到 URL 的请求的同时登录和注销

https://site.com/cgi-bin/login.pl?logout

删除?logout参数,然后重试。如果它没有改变任何东西,请更新您的问题。

请进一步解释您要实现的目标,以便我们讨论代码是否正确。

于 2012-08-14T14:52:19.543 回答