完蛋了,用HttpWebResponse后原来的数据没有了
有三个页面
login.asp --登陆验证,取得cookie
a.asp--取得ID列表,然后通过这个ID去b.asp取数据
b.asp?id=xxx
b.asp?id=1这样出来页面后,页面有一个文本框text1,
text1中的数据为通过该id取得的数据库数据
还有一个按钮,用于保存该文本框数据(假设被修改,post到另外页面去执行保存)
我取得cookie以及id列表后,想得到b.asp页面的html代码进行分析,却发现遇到大问题,让我哭死
遇到的问题是这样,循环ID列表后所有的text1对应的数据库数据段都变成空了!!
实在想不通阿,我又没调用保存的页面
关键代码如下
public static string GetResponsedData(string datacontent, CookieContainer c, string u)
{
ASCIIEncoding encoding = new ASCIIEncoding();
byte[] data = encoding.GetBytes(datacontent);
HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(u);
myRequest.Method = "POST"; //改为GET并去掉datacontent参数,数据倒是不会没有
myRequest.ContentType = "application/x-www-form-urlencoded ";
myRequest.AllowAutoRedirect = true;
myRequest.CookieContainer = c;
Stream newStream = myRequest.GetRequestStream();
newStream.Write(data, 0, data.Length);
newStream.Close();
HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();
StreamReader reader;
reader = new StreamReader(myResponse.GetResponseStream(), Encoding.Default);
string content = reader.ReadToEnd();
reader.Close();
myResponse.Close();
return content;
}
string s;
//param:id=1,u=b.asp
//param为空,u=b.asp?id=1
//上述2种结果都一样,数据没了
for(int i;i<idlist.count;i++)
{
s+=GetResponsedData(param,c,u)
}