|

楼主 |
发表于 2008-11-7 17:36:39
|
显示全部楼层
不用写什么插件了,实际是我自己在写这个页面的采集程序,遇到这个难题了不得已问的
您说模拟post是什么意思,我程序中做的就是模拟它的postback动作,给下我的程序代码
const string intelUrl = "http://swpartner.intel.com/Partner/solcat/ProductDetails.aspx?";
string getparm = "Lang=ZHO&ProductId=BC30941F-FB81-4AF8-8B76-9068E7C79C52&SolCatLangCode=ZHO";
string postparm = "__EVENTTARGET=ctl00$ContentPlaceHolder1$lnkBtnSpecification&__EVENTVALIDATION=lqiE+o3RJ6OMl+BITPqw1r5GcpJqDBZRyvzZphlOo38f4DBt3whNLjjzifdM3n0E&_VIEWSTATE=/wEPDwUJNzkzMzA0MzUzZGSiqFEJAHN0I6S9sp9Lf0JQjoIMOw==&__EVENTARGUMENT=";
void GetHTML()
{
byte[] postdata = Encoding.UTF8.GetBytes(postparm);
HttpWebRequest request;
HttpWebResponse response;
Stream stream;
StreamReader reader;
request = HttpWebRequest.Create(intelUrl+getparm) as HttpWebRequest;
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = postdata.Length;
request.SendChunked = true;
request.TransferEncoding = "utf-8";
using (stream = request.GetRequestStream())
{
stream.Write(postdata, 0, postdata.Length);
}
try
{
response = request.GetResponse() as HttpWebResponse;
reader = new StreamReader(response.GetResponseStream(), Encoding.Default);
this.Label1.Text = Server.HtmlDecode(reader.ReadToEnd());
}
catch(Exception e)
{
this.Label1.Text = e.Message + "<br/>" + e.StackTrace;
}
}
问题是我只要一提交就远程服务器返回500错误,它eventvalidation=true,我无法通过postback验证,真想火车头老大有时间解答一下 |
|