关于HttpWebResponse的问题
首先要承认我的HttpWebResponse比较菜,很多东西事实而非,大家不要拍砖,手下留情,多多答疑解惑,多谢
本人想做一个集登入、自动刷新和购买一条龙的外挂软件,但是HttpWebResponse实在是头次接触,感觉很不会用,碰到些问题,请大大们解惑。
1、在post的时候,__VIEWSTATE和__EVENTVALIDATION,需要赋值吗?
2、cookieString返回的内容是“ASP.NET_SessionId=tfnqvc454uewzev4nwlp2ume; path=/; HttpOnly”代表我登入成功了吗?
3、怎么将string cookieString 转换成 CookieCollection cookies ?
附我的源代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.IO;
using Xiaowa;
using System.Text.RegularExpressions;
namespace 网络精灵
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
try
{
string loginUrl = textBox1.Text;
string userName = "xiaowa10";
string password = "xiaowa13";
string keeptime = "10800";
IDictionary<string, string> parameters = new Dictionary<string, string>();
parameters.Add("ctl00$ctl00$ContentPlaceHolder1$ContentPlaceHolder1$txtUserName", userName);
parameters.Add("ctl00$ctl00$ContentPlaceHolder1$ContentPlaceHolder1$txtPwd", password);
parameters.Add("ctl00$ctl00$ContentPlaceHolder1$ContentPlaceHolder1$ddlKeepTime", keeptime);
parameters.Add("$hfBroswerVersion", "8.0");
parameters.Add("ctl00$ctl00$ContentPlaceHolder1$ContentPlaceHolder1$btnLogin", "登 录");
parameters.Add("ctl00$ctl00$ContentPlaceHolder1$ContentPlaceHolder1$hfpwd", textBox2.Text.ToString());
parameters.Add("__VIEWSTATE", textBox3.Text.ToString());
parameters.Add("__EVENTVALIDATION", textBox4.Text.ToString());
//登入页面
HttpWebResponse response = HttpWebResponseUtility.CreatePostHttpResponse(loginUrl, parameters, null, null, Encoding.UTF8, null);
//保存cookie
cookieString = response.Headers["Set-Cookie"];
//取得网页内容
StreamReader sr = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
//StreamReader sr = new StreamReader(response.GetResponseStream(), Encoding.Default);
string content = sr.ReadToEnd(); //得到访问页面信息源代码
response.Close();
richTextBox1.Text = content;
richTextBox2.Text = "读取页面成功\n" + richTextBox2.Text;
richTextBox2.Text = "cookies:" + cookieString + "\n" + richTextBox2.Text;
}
catch (Exception ex)
{
richTextBox2.Text = ex.Message.ToString() + "\n" + richTextBox2.Text;
}
}
public string cookieString = null;
private void button2_Click(object sender, EventArgs e)
{
try
{
CookieCollection cookies = new CookieCollection(); //如何从response.Headers["Set-Cookie"];中获取并设置CookieCollection的代码略
cookies = isgood.strCokAddCol(cookieString, textBox1.Text.ToString());
HttpWebResponse response = HttpWebResponseUtility.CreateGetHttpResponse(textBox1.Text.ToString(), null, null, cookies);
//取得网页内容
StreamReader sr = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
//StreamReader sr = new StreamReader(response.GetResponseStream(), Encoding.Default);
string content = sr.ReadToEnd(); //得到访问页面信息源代码
response.Close();
richTextBox1.Text = content;
richTextBox2.Text = "读取页面成功\n" + richTextBox2.Text;
}
catch (Exception ex)
{
richTextBox2.Text = ex.Message.ToString() + "\n" + richTextBox2.Text;
}
}
}
}