我对下面的网站输入不同的publication.NO进行检索,利用GetPage函数获取检索后的网页源文件:
http://www.epoline.org/portal/public/!ut/p/kcxml/04_Sj9SPykssy0xPLMnMz0vM0Y_QjzKLN4i3dAHJgFjGpvqRqCKOcAFvfV-P_NxU_QD9gtzQiHJHRUUA43OWZA!!/delta/base64xml/L3dJdyEvUUd3QndNQSEvNElVRS82XzBfOUc!假若我输入EP1023469,postData根据ieHTTPHeaders软件得到,
其中,string url="http://www.epoline.org/portal/public/!ut/p/kcxml/04_Sj9SPykssy0xPLMnMz0vM0Y_QjzKLN4i3dAHJgFjGpvqRqCKOcAFvfV-P_NxU_QD9gtzQiHJHRUUA43OWZA!!/delta/base64xml/L3dJdyEvUUd3QndNQSEvNElVRS82XzBfOUc!";string postData="RCOUNTRY=EP&RIID=ANONYMOUS&RROLE=PUBLIC&RORGNAME=EPOPORTAL&RSEARCHSTARTNUMBER=1&RFIELDFUNCTION1=%3D&RFIELDOPERATOR1=AND&RFIELDNAME1=publication-number&RFIELDVALUE1=EP1023469";string encodeType = "UTF-8";为什么得到的html结果总是最开始检索的页面源文件,不管我输入什么postData,结果都不变?
谢谢大家的回答!public string GetPage(string url, string postData, string encodeType, out string err)
{
Stream outstream = null;
Stream instream = null;
StreamReader sr = null;
HttpWebResponse response = null;
HttpWebRequest request = null; Encoding encoding = Encoding.GetEncoding(encodeType);
byte[] data = encoding.GetBytes(postData); // 准备请求...
try
{
// 设置参数
request = WebRequest.Create(url) as HttpWebRequest;
CookieContainer cookieContainer = new CookieContainer();
request.CookieContainer = cookieContainer;
request.AllowAutoRedirect = true;
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = data.Length; outstream = request.GetRequestStream();
outstream.Write(data, 0, data.Length);
outstream.Close(); //发送请求并获取相应回应数据
response = request.GetResponse() as HttpWebResponse; //直到request.GetResponse()程序才开始向目标网页发送Post请求
instream = response.GetResponseStream(); sr = new StreamReader(instream, encoding); //返回结果网页(html)代码
string content = sr.ReadToEnd();
err = string.Empty; return content;
}
catch (Exception ex)
{
err = ex.Message;
return string.Empty;
}
}
http://www.epoline.org/portal/public/!ut/p/kcxml/04_Sj9SPykssy0xPLMnMz0vM0Y_QjzKLN4i3dAHJgFjGpvqRqCKOcAFvfV-P_NxU_QD9gtzQiHJHRUUA43OWZA!!/delta/base64xml/L3dJdyEvUUd3QndNQSEvNElVRS82XzBfOUc!假若我输入EP1023469,postData根据ieHTTPHeaders软件得到,
其中,string url="http://www.epoline.org/portal/public/!ut/p/kcxml/04_Sj9SPykssy0xPLMnMz0vM0Y_QjzKLN4i3dAHJgFjGpvqRqCKOcAFvfV-P_NxU_QD9gtzQiHJHRUUA43OWZA!!/delta/base64xml/L3dJdyEvUUd3QndNQSEvNElVRS82XzBfOUc!";string postData="RCOUNTRY=EP&RIID=ANONYMOUS&RROLE=PUBLIC&RORGNAME=EPOPORTAL&RSEARCHSTARTNUMBER=1&RFIELDFUNCTION1=%3D&RFIELDOPERATOR1=AND&RFIELDNAME1=publication-number&RFIELDVALUE1=EP1023469";string encodeType = "UTF-8";为什么得到的html结果总是最开始检索的页面源文件,不管我输入什么postData,结果都不变?
谢谢大家的回答!public string GetPage(string url, string postData, string encodeType, out string err)
{
Stream outstream = null;
Stream instream = null;
StreamReader sr = null;
HttpWebResponse response = null;
HttpWebRequest request = null; Encoding encoding = Encoding.GetEncoding(encodeType);
byte[] data = encoding.GetBytes(postData); // 准备请求...
try
{
// 设置参数
request = WebRequest.Create(url) as HttpWebRequest;
CookieContainer cookieContainer = new CookieContainer();
request.CookieContainer = cookieContainer;
request.AllowAutoRedirect = true;
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = data.Length; outstream = request.GetRequestStream();
outstream.Write(data, 0, data.Length);
outstream.Close(); //发送请求并获取相应回应数据
response = request.GetResponse() as HttpWebResponse; //直到request.GetResponse()程序才开始向目标网页发送Post请求
instream = response.GetResponseStream(); sr = new StreamReader(instream, encoding); //返回结果网页(html)代码
string content = sr.ReadToEnd();
err = string.Empty; return content;
}
catch (Exception ex)
{
err = ex.Message;
return string.Empty;
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货