高分 请教发送GET包到网页的的办法!
例如网站:www.abc.com我用程序去访问他,HTTPWebResponse和HTTPWebResquse这两个类
其中伴随着COOKIE,还有GET包,一起发送
得到网页数据
以上是流程
但是:www.abc.com站上有一个CNZZ统计,我用程序访问后统计上不显示我曾访问过,我自己实验过,统计中没数据,就和没访问过一样,我要实现的就是我用程序访问了这个页面,怎么样让页面上的统计里也统计到我确实是访问了他了,我GET包也没数据,不知道是包的问题,还是这样做根本就不行
在此求教,C#.NET WinFrom程序,能实现程序访问页面并让页面统计到访问数据的人高分回报,就算用本人所有的分都可以,都加给你!求教求教 --------------------编程问答-------------------- 你首选要清楚他怎么做流量统计的,是单位时间内的独立ip的访问来算的还是一次request就算一次了?
楼主的排名看的不错,30000000位,吼吼 --------------------编程问答-------------------- 如果www.abc.com使用javascript做统计那就无能为力了
或干脆使用webbrowse --------------------编程问答--------------------
private string templete =
@"GET {0} HTTP/1.1
Host:{1}
Connection:close
User-agent:Mozilla/4.0
Accept-language:zh-cn
";
详细请参考http://topic.csdn.net/u/20080905/15/2764f7a2-9927-4d70-b9e4-6218cc90abb8.html --------------------编程问答--------------------
不用WebBrower的话,要执行里面的脚本,你一个人就能写出来就是天才了。
HTTPWebResponse和HTTPWebRequest只负责把网页源码取下来,并不会执行其它操作。
你看看访问统计是不是简单的引用了一个脚本,如果是那样的话,再用HTTPWebRequest去读取那个脚本,参数带上就行。 --------------------编程问答-------------------- 确实就像LS说的一样,HttpWebResponse和HttpWebRequest是把网页源码取下来,如下函数:
private string SendPostData(string path, string strhtml)
{
HttpWebRequest httprequest = (HttpWebRequest)WebRequest.Create(path);
httprequest.Method = "POST";
httprequest.ContentLength = strhtml.Length;
httprequest.ContentType = "application/x-www-form-urlencoded";
Stream httprequeststream = httprequest.GetRequestStream();
StreamWriter sw = new StreamWriter(httprequeststream);
sw.Write(strhtml);
sw.Close();
HttpWebResponse httpresponse = (HttpWebResponse)httprequest.GetResponse();
StreamReader sr = new StreamReader(httpresponse.GetResponseStream(), Encoding.Default);
string backstr = sr.ReadToEnd();
sr.Close();
httpresponse.Close();
return backstr;
}
这样只能得到一个HTML的一个源码,并不执行别的东西,访问统计不好操作的 --------------------编程问答-------------------- 很感谢楼上各位的回答
统计是用CNZZ统计的,是JAVASRCIPT脚本的
就是个简单脚本~
用HTTPWebRequest去读那个脚本吗?
该怎么读和带参呢?
是否可以指点一下代码?
原理知道了,有了代码立刻结帖加分,再追加分! --------------------编程问答--------------------
----------------------
注意了这个你=是要执行那段统计的脚本代码。但是HTTPWebResponse和HTTPWebResquse这两个类是不会执行的,那只负责获取那页面的源代码啊。
所以基本是做不到。
不知道还有高人否! --------------------编程问答-------------------- 还有就是看能不能直接去GET那统计代码。 --------------------编程问答-------------------- GET没有包,get传参是url后直接跟参数的
POST倒是有参数包
首先你应该下载抓包工具,如httpwebrequest 分析出来ie正常请求该网站有哪些步骤用到哪些参数
然后你才可以修改你的程序向相同的地方提交相同的post包,就是模拟ie
至于httpwebrequest post数据的例子 你百度一下吧 有很多 我就不贴了 --------------------编程问答-------------------- http://blog.csdn.net/KimmKing/archive/2008/12/28/3630678.aspx
通过分析vs平台的网页注册方式,分析验证码,使用c#模拟表单提交,实现账号自动注册。
我们可以实现一个网络请求,附带上以上的各个所需信息,服务器即会认为是客户端浏览器提交了一个表单,进而为我们注册一个账号。
大概的步骤如下:
1、获取验证图片和cookie
2、分析验证码
3、模拟提交表单
4、分析是否成功
===============
cookie:
request.CookieContainer = container;
myHttpWebResponse.Cookies = container.GetCookies(request.RequestUri);
--------------------编程问答-------------------- get完那网站后,再get下统计代码。
或者直接get统计代码。 --------------------编程问答--------------------
补充:.NET技术 , C#