我刚刚开始在几周前与C#玩耍。我得到了一个我正在尝试执行的任务,并不确定现在的方式是否正确。试图登录到一个网站点击一个按钮
我试图登录到网站(在我的案件的WordPress网站 - 为更好的选择湖),并使用C#在管理面板导航
到目前为止,我已经做什么创建一个新项目 - 视窗表格申请。
下面的代码 - 发送到与密码/用户名等参数的网站的请求为POST
private void button2_Click(object sender, EventArgs e)
{
CookieContainer cookieJar = new CookieContainer();
CookieContainer cookieJar2 = new CookieContainer(); // will use this later
string testaa = ""; // will use this later
string paramaters = "log=xxxx&pwd=xxxx&testcookie=1&redirect_to=http://www.example.com/wp-admin/&wp-submit=Log In";
string strResponse;
HttpWebRequest requestLogin = (HttpWebRequest)WebRequest.Create("http://www.lyndatobin-howes.com/wp-login.php");
requestLogin.Method = "POST";
requestLogin.AllowAutoRedirect = false;
requestLogin.ContentType = "application/x-www-form-urlencoded";
requestLogin.CookieContainer = cookieJar;
requestLogin.ContentLength = paramaters.Length;
StreamWriter stOut = new StreamWriter(requestLogin.GetRequestStream(), Encoding.ASCII);
stOut.Write(paramaters);
stOut.Close();
}
然后我有这样的代码,以采取响应的饼干。
HttpWebResponse response = (HttpWebResponse)requestLogin.GetResponse();
foreach (Cookie c in response.Cookies)
{
cookieJar2.Add(new Cookie(c.Name, c.Value, c.Path, c.Domain));
}
然后我有这个读取响应+关闭一些流。
StreamReader stIn = new StreamReader(requestLogin.GetResponse().GetResponseStream());
strResponse = stIn.ReadToEnd();
string responseFromServer = stIn.ReadToEnd();
webBrowser1.DocumentText = responseFromServer;
stIn.Close();
response.Close();
然后,我尝试使用的页面我试图访问如下上述的cookie:
HttpWebRequest requestLogin2 = (HttpWebRequest)WebRequest.Create("http://www.example.com/wp-admin/");
requestLogin2.Method = "POST";
requestLogin2.AllowAutoRedirect = false;
requestLogin2.ContentType = "application/x-www-form-urlencoded";
requestLogin2.CookieContainer = cookieJar2;
requestLogin2.ContentLength = paramaters.Length;
StreamWriter stOut2 = new StreamWriter(requestLogin2.GetRequestStream(), System.Text.Encoding.ASCII);
stOut2.Write(paramaters);
stOut2.Close();
StreamReader stIn2 = new StreamReader(requestLogin2.GetResponse().GetResponseStream());
strResponse = stIn2.ReadToEnd();
string responseFromServer2 = stIn2.ReadToEnd();
webBrowser1.DocumentText = responseFromServer2;
richTextBox2.Text += "\n\n\n" + responseFromServer2;
stIn.Close();
那么它不为某种原因,我一直想这样的工作现在一周。
我试图显示标题 - 第一个请求后,看看我回来什么标题。然后看着我建立的cookie(cookieJar2),看起来它们是不一样的。
无论如何,任何关于此事的帮助将是真棒和高度赞赏。我尽可能提供尽可能多的细节。
无论我做什么,我只保留响应cookie,我想因为我错过了其他4个饼干..不知道该怎么做。 – 2012-04-04 10:46:19
任何人有任何想法? – 2012-04-04 22:18:03
还在找什么关于此事 – 2012-04-05 12:14:12