动态获得目标网页源码 在一个页面通过post提交数据,中间有参数的传递,如何获得请求页面的源码?哪位大虾知道。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 WebClienthttp://aspxboy.com/private/271/default.aspx httpwebrequesthttpwebresponse网上搜一下,很多 protected string GetPageByPost(string url, string postData) { int retryCount = 0; Retry: Stream outstream = null; Stream instream = null; StreamReader sr = null; HttpWebResponse response = null; HttpWebRequest request = null; byte[] data = encoding.GetBytes(postData); try { request = WebRequest.Create(url) as HttpWebRequest; request.AllowAutoRedirect = true; request.Method = HttpMethod.POST.ToString(); request.ContentType = "application/x-www-form-urlencoded"; RequestCachePolicy cp = new RequestCachePolicy( RequestCacheLevel.BypassCache); request.CachePolicy = cp; request.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322)"; request.ContentLength = data.Length; request.Timeout = 20000; request.Headers.Add("Accept-Language", "en-us"); request.KeepAlive = false; outstream = request.GetRequestStream(); outstream.Write(data, 0, data.Length); outstream.Close(); //发送请求并获取相应回应数据 response = request.GetResponse() as HttpWebResponse; instream = response.GetResponseStream(); sr = new StreamReader(instream, encoding); string content = sr.ReadToEnd(); return content; } catch (Exception ex) { retryCount++; if (retryCount <= 20) goto Retry; Console.WriteLine(string.Format("访问网页{0}失败!\r\n{1}\r\n\r\n{2}", url, ex.Message, postData)); throw ex; } }这个就是post数据的得到方式,post参数你自己写。我就是用这个写的,没问题 但我现在不知道它的参数名啊,不需要吗?并且你这个应该是根据url来的,如果直接这样提交过去,它是不带参数的情况啊! 哪位知道上面的encoding和HttpMethod从哪里来? 看不太明白楼主的需求,获取某个网页提交过来的数据是一码事,获取某个网页的源码又是另外一码事,你究竟是要做哪件还是两件都要做?第一件事 用Request.form就可以得到提交的参数集合了,第二件用httpwebrequest对象可以获取到源码。 意思是不是要请求的参数?用sniffer pro来抓包? encoding 就是一个变量,代表你要访问的页面的编码方式,HttpMethod 这里要说明就是判断是否是post方式,这两个都是可以不要的。 c#调用C++的dll时,接口函数里的数组如何传递 水晶报表设计求助。 Dictionary<string,List<KeyValuePair<string,int>> MSDN中的一个错误 初级问题 请教如何判断随机数区间 新建项目--Visual C#--模板处空白 知道一个程序集的DLL文件,可不可以用什么方法将里面的原代码读出! 我想实现一个文件过滤的功能 求防QQ即时通讯软件实例子或开发原来 关于List<T>,IList,ICollection,IEnumerable 怎么向这样的网页提交数据
http://aspxboy.com/private/271/default.aspx
httpwebresponse
网上搜一下,很多
{
int retryCount = 0;
Retry: Stream outstream = null;
Stream instream = null;
StreamReader sr = null;
HttpWebResponse response = null;
HttpWebRequest request = null;
byte[] data = encoding.GetBytes(postData);
try
{
request = WebRequest.Create(url) as HttpWebRequest;
request.AllowAutoRedirect = true;
request.Method = HttpMethod.POST.ToString();
request.ContentType = "application/x-www-form-urlencoded";
RequestCachePolicy cp = new RequestCachePolicy(
RequestCacheLevel.BypassCache);
request.CachePolicy = cp;
request.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322)";
request.ContentLength = data.Length;
request.Timeout = 20000;
request.Headers.Add("Accept-Language", "en-us");
request.KeepAlive = false; outstream = request.GetRequestStream();
outstream.Write(data, 0, data.Length);
outstream.Close();
//发送请求并获取相应回应数据
response = request.GetResponse() as HttpWebResponse;
instream = response.GetResponseStream();
sr = new StreamReader(instream, encoding);
string content = sr.ReadToEnd();
return content;
} catch (Exception ex)
{
retryCount++;
if (retryCount <= 20)
goto Retry;
Console.WriteLine(string.Format("访问网页{0}失败!\r\n{1}\r\n\r\n{2}", url, ex.Message, postData));
throw ex; } }这个就是post数据的得到方式,post参数你自己写。我就是用这个写的,没问题
你究竟是要做哪件还是两件都要做?
第一件事 用Request.form就可以得到提交的参数集合了,第二件用httpwebrequest对象可以获取到源码。
用sniffer pro来抓包?