[英]Saving login Cookie and use it for other request
I'm new to c#. 我是C#的新手。 I'm trying to login to a website, using ac# post request.
我正在尝试使用ac#发布请求登录网站。
Does this code save the cookie actually to the CookieContainer and would it let me use this cookie in other requests also? 这段代码是否将cookie实际保存到CookieContainer中,是否还允许我在其他请求中使用此cookie? How would I for example post a get request now with the cookie I saved from the login?
例如,我将如何使用从登录名中保存的cookie立即发布获取请求?
My main code: 我的主要代码:
private void button1_Click(object sender, EventArgs e)
{
try
{
string userName = textBox1.Text;
string passWord = textBox2.Text;
string postData = "username=" + userName + "&password=" + passWord;
string requestUrl = "http://registration.zwinky.com/registration/loginAjax.jhtml";
post botLogin = new post();
botLogin.postToServer (postData ,requestUrl);
}
catch (Exception ex)
{
MessageBox.Show("Error :" + ex.Message);
}
}
My post class: 我的帖子课:
public class post
{
public void postToServer(string postData, string requestUrl)
{
HttpWebRequest myHttpWebRequest = (HttpWebRequest)HttpWebRequest.Create(requestUrl);
myHttpWebRequest.Method = "POST";
byte[] data = Encoding.ASCII.GetBytes(postData);
myHttpWebRequest.CookieContainer = new CookieContainer();
myHttpWebRequest.ContentType = "application/x-www-form-urlencoded";
myHttpWebRequest.ContentLength = data.Length;
Stream requestStream = myHttpWebRequest.GetRequestStream();
requestStream.Write(data, 0, data.Length);
requestStream.Close();
HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();
Stream responseStream = myHttpWebResponse.GetResponseStream();
StreamReader myStreamReader = new StreamReader(responseStream, Encoding.Default);
string pageContent = myStreamReader.ReadToEnd();
myStreamReader.Close();
responseStream.Close();
myHttpWebResponse.Close();
MessageBox.Show(pageContent);
}
}
You need to share the CookieContainer between the requests and the responses. 您需要在请求和响应之间共享CookieContainer。 I have similar code currently working:
我目前正在使用类似的代码:
public YourClass
{
private CookieContainer Cookies;
public YourClass()
{
this.Cookies= new CookieContainer();
}
public void SendAndReceive()
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(...);
....
request.UserAgent = agent;
request.Method = "GET";
request.ContentType = "text/html";
request.CookieContainer = this.Cookies;
....
this.Cookies = (HttpWebResponse)request.GetResponse().Cookies;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.