高分 请教发送GET包到网页的的办法!

black1986 2008-12-29 02:20:31
例如网站:www.abc.com
我用程序去访问他,HTTPWebResponse和HTTPWebResquse这两个类
其中伴随着COOKIE,还有GET包,一起发送
得到网页数据
以上是流程

但是:www.abc.com站上有一个CNZZ统计,我用程序访问后统计上不显示我曾访问过,我自己实验过,统计中没数据,就和没访问过一样,我要实现的就是我用程序访问了这个页面,怎么样让页面上的统计里也统计到我确实是访问了他了,我GET包也没数据,不知道是包的问题,还是这样做根本就不行

在此求教,C#.NET WinFrom程序,能实现程序访问页面并让页面统计到访问数据的人高分回报,就算用本人所有的分都可以,都加给你!求教求教
...全文
134 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
sue250 2009-01-05
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 KimmKing 的回复:]
http://blog.csdn.net/KimmKing/archive/2008/12/28/3630678.aspx


通过分析vs平台的网页注册方式,分析验证码,使用c#模拟表单提交,实现账号自动注册。


我们可以实现一个网络请求,附带上以上的各个所需信息,服务器即会认为是客户端浏览器提交了一个表单,进而为我们注册一个账号。

大概的步骤如下:

1、获取验证图片和cookie

2、分析验证码

3、模拟提交表单

4、分析是否成功


==========…
[/Quote]
book_leihen 2008-12-31
  • 打赏
  • 举报
回复
get完那网站后,再get下统计代码。
或者直接get统计代码。
kimmking 2008-12-31
  • 打赏
  • 举报
回复
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);

brood108 2008-12-31
  • 打赏
  • 举报
回复
GET没有包,get传参是url后直接跟参数的
POST倒是有参数包

首先你应该下载抓包工具,如httpwebrequest 分析出来ie正常请求该网站有哪些步骤用到哪些参数
然后你才可以修改你的程序向相同的地方提交相同的post包,就是模拟ie
至于httpwebrequest post数据的例子 你百度一下吧 有很多 我就不贴了
APP开发王 2008-12-31
  • 打赏
  • 举报
回复
还有就是看能不能直接去GET那统计代码。
APP开发王 2008-12-31
  • 打赏
  • 举报
回复

----------------------

注意了这个你=是要执行那段统计的脚本代码。但是HTTPWebResponse和HTTPWebResquse这两个类是不会执行的,那只负责获取那页面的源代码啊。
所以基本是做不到。

不知道还有高人否!
wangping_li 2008-12-29
  • 打赏
  • 举报
回复
确实就像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的一个源码,并不执行别的东西,访问统计不好操作的
cpio 2008-12-29
  • 打赏
  • 举报
回复

不用WebBrower的话,要执行里面的脚本,你一个人就能写出来就是天才了。

HTTPWebResponse和HTTPWebRequest只负责把网页源码取下来,并不会执行其它操作。

你看看访问统计是不是简单的引用了一个脚本,如果是那样的话,再用HTTPWebRequest去读取那个脚本,参数带上就行。
医手 2008-12-29
  • 打赏
  • 举报
回复

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
路人乙e 2008-12-29
  • 打赏
  • 举报
回复
如果www.abc.com使用javascript做统计那就无能为力了
或干脆使用webbrowse
coley 2008-12-29
  • 打赏
  • 举报
回复
你首选要清楚他怎么做流量统计的,是单位时间内的独立ip的访问来算的还是一次request就算一次了?
楼主的排名看的不错,30000000位,吼吼
black1986 2008-12-29
  • 打赏
  • 举报
回复
很感谢楼上各位的回答

统计是用CNZZ统计的,是JAVASRCIPT脚本的

就是个简单脚本~

用HTTPWebRequest去读那个脚本吗?

该怎么读和带参呢?

是否可以指点一下代码?

原理知道了,有了代码立刻结帖加分,再追加分!

111,130

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧