使用httpwebrequest发送数据到网站

news/2024/5/20 11:09:10/文章来源:https://blog.csdn.net/bill1315/article/details/1600137
怎样通过HttpWebRequest 发送 POST 请求到一个网页服务器?例如编写个程序实现自动用户登录,自动提交表单数据到网站等。
假如某个页面有个如下的表单(Form):
<form name="form1" action=" http://www.here.com/login.asp" method="post">
  <input type="text" name="userid" value="">
  <input type="password" name="password" value="">
</form>
    
从表单可看到表单有两个表单域,一个是userid另一个是password,所以以POST形式提交的数据应该包含有这两项。
其中POST的数据格式为:
表单域名称1=值1&表单域名称2=值2&表单域名称3=值3……
要注意的是“值”必须是经过HTMLEncode的,即不能包含“<>=&”这些符号。

本例子要提交的数据应该是:
userid=value1&password=value2

用C#写提交程序:

  string strId = "guest";
  string strPassword= "123456";

  ASCIIEncoding encoding=new ASCIIEncoding();
  string postData="userid="+strId;
  postData += ("&password="+strPassword);

  byte[] data = encoding.GetBytes(postData);

  // Prepare web request...
  HttpWebRequest myRequest =
   (HttpWebRequest)WebRequest.Create(" http://www.here.com/login.asp");

  myRequest.Method = "POST";
  myRequest.ContentType="application/x-www-form-urlencoded";
  myRequest.ContentLength = data.Length;
  Stream newStream=myRequest.GetRequestStream();

  // Send the data.
  newStream.Write(data,0,data.Length);
  newStream.Close();

  // Get response
  HttpWebResponse myResponse=(HttpWebResponse)myRequest.GetResponse();
  StreamReader reader = new StreamReader(response.GetResponseStream(),Encoding.Default);
  string content = reader.ReadToEnd();
  Console.WriteLine(content);

 使用Visual Sniffer :

这里介绍个工具: Visual Sniffer , google 一下便可轻松找到下载地址。
可以使用 Visual Sniffer 来捕捉提交的数据信息:
1. 访问你需要站外提交的页面,比如 CSDN 登陆页 http://www.csdn.net/member/UserLogin.aspx
2. 填写好需要的资料,比如用户名和密码,
3. 打开 Visual Sniffer, 点“开始拦截”
4. 在访问的页面中提交。
5. 等提交成功之后,在 Visual Sniffer 中“停止拦截”
6. 在 Visual Sniffer 的左侧栏的加号中依次点开,右边是它拦截到的内容,
   找到 内容含有 POST  http://www.csdn.net/member/UserLogin.aspx  的节点
以下是我拦截的内容供参考:

POST http://www.csdn.net/member/UserLogin.aspx HTTP/1.0
Accept: image/gif
, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-shockwave-flash, */*
Referer: http://www.csdn.net/member/UserLogin.aspx
Accept-Language: zh-cn
Content-Type: application/x-www-form-urlencoded
UA-CPU: x86
Pragma: no-cache
User-Agent: Mozilla/
4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322; InfoPath.1)
Host: www.csdn.net
Content-Length: 
355
Proxy-Connection: Keep-Alive
Cookie: ASPSESSIONIDAAAATBQC
=FMEGGCKDBKHAMMCGKPFDMBFG; ASP.NET_SessionId=lusprmnom05lr445tmteaf55; userid=699879

__EVENTTARGET
=&__EVENTARGUMENT=&__VIEWSTATE=dDwtMTcwMzgxNjQ2Mjs7bDxDU0ROVXNlckxvZ2luOmNiX1NhdmVTdGF0ZTtDU0ROVXNlckxvZ2luOkltYWdlX0xvZ2luOz4%2Btu1q2wmRZoAJTi9L73w1zBleylY%3D&CSDNUserLogin%3Atb_UserName=testusername&CSDNUserLogin%3Atb_Password=testpassword&CSDNUserLogin%3Atb_ExPwd=9232&from=&CSDNUserLogin%3AImage_Login.x=36&CSDNUserLogin%3AImage_Login.y=6
GET http://www.csdn.net/mycustompage.htm?aspxerrorpath
=/member/UserLogin.aspx HTTP/1.0
Accept: image/gif
, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-shockwave-flash, */*
Referer: http://www.csdn.net/member/UserLogin.aspx
Accept-Language: zh-cn
UA-CPU: x86
Pragma: no-cache
User-Agent: Mozilla/
4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322; InfoPath.1)
Host: www.csdn.net
Proxy-Connection: Keep-Alive
Cookie: ASPSESSIONIDAAAATBQC
=FMEGGCKDBKHAMMCGKPFDMBFG; ASP.NET_SessionId=lusprmnom05lr445tmteaf55; userid=699879

注意:PostData 参数之间是以 " & " 进行 连接的

OK,通过以上简单示例,只要稍微修改下,即可做成多站点自动登陆,或自动网上投票等功能!

such as:

代码如下:

            ASCIIEncoding encoding = new  ASCIIEncoding();
            
string  postData = " TextBox1=33&Button1=Button " ;
            
byte []  data  =  encoding.GetBytes(postData);

            
//  Prepare web request
            HttpWebRequest myRequest  =
                (HttpWebRequest)WebRequest.Create(
" http://localhost/testform1.aspx " );
            myRequest.Method 
=   " POST " ;
            myRequest.ContentType
= " application/x-www-form-urlencoded " ;
            myRequest.ContentLength 
=  data.Length;
            Stream newStream
= myRequest.GetRequestStream();
            
//  Send the data.
            newStream.Write(data, 0 ,data.Length);
            newStream.Close();


解释:
postData 为你要提交的数据
比如 CSDN 的登录页面 http://www.csdn.net/member/UserLogin.aspx
输入用户名密码和校验码,并提交之后,浏览器便将下面的数据提交到服务器:
 

 

CSDNUserLogin%3Atb_UserName = yourName&CSDNUserLogin%3Atb_Password = yourPassword&CSDNUserLogin%3Atb_ExPwd = 2332


其中的 yourName 为你实际登陆时提交的用户名, yourPassword 即为你的密码, 2332 是我刚才登陆时的验证码

参考网址:

http://dev.csdn.net/article/28/28374.shtm
http://www.knowsky.com/18774.html
http://www.netomatix.com/HttpPostData.aspx

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_862943.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大型电子商务网站架构

大型电子商务网站架构 (转自&#xff1a;http://www.cnblogs.com/skydau/archive/2009/08/30/1556701.html) 7.同一个网站的多语言该如何处理是好,使用配置文件然后cookie或url来判别?客户是自己公司&#xff0c;使用标准方法即可 8.电子商务网站最多的就是 商品的打折方式和…

小型电子商务网站设计原则

最近谈得最多的话题莫过于大规模&#xff0c;大数据量&#xff0c;高性能&#xff0c;高并发等架构话题&#xff0c;其实一个电子商务网站开始时一定是小规模&#xff0c;小数据量&#xff0c;用不着把架构弄得过于复杂。高度设计、过度扩展(高德纳大爷也说过&#xff0c;"…

正确地定制您的网站 ndash; 文件替代机制,zencart

很多用户对zen cart做了自己的修改&#xff0c;非常好&#xff01;但同时&#xff0c;一些用户修改了很多重要的文件&#xff0c;例如&#xff1a; /includes/filenames.php /includes/languages/schinese.php /includes/languages/schinese/*.php 等等… 友情提示&#xff…

网站集成支付宝

&#xff08;本文转载于http://stephen830.javaeye.com/blog/254827 ) 国内电子商务系统实现的基本流程如下&#xff1a; 客户在系统内下订单 -> 系统根据订单生成支付宝接口url -> 客户通过url使用支付宝&#xff08;网上银行&#xff09;付款 -> 支付宝将客户的付款…

淘宝技术发展(个人网站)之二

个人网站 2003年4月7日&#xff0c;马云&#xff0c;在杭州&#xff0c;成立了一个神秘的组织。他叫来十位员工&#xff0c;要他们签了一份协议&#xff0c;这份协议要求他们立刻离开阿里巴巴&#xff0c;去做一个神秘的项目。这个项目要求绝对保密&#xff0c;老马戏称“连说梦…

如何编写外贸电子商务网站产品的描述信息

把自己的商品信息准确地传递给你的客户&#xff0c;是运行电子商务的重要环节&#xff0c;也是促成客户选购产品的关键因素。对于电子商务网站来说商品的描述是必不可少&#xff0c;是对图片信息的重要的补充。图片传递给客户的只是商品的形状和颜色的信息&#xff0c;对于性能…

利用CDN技术加速国外客户访问外贸电子商务网站的速度

很多外贸企业都遇到过这样的问题&#xff1a;网站做得非常好&#xff0c;可还是经常得到国外客户的反馈说是访问网站的速度慢&#xff0c;这不仅会在很大程度上影响企业的外贸交易&#xff0c;还会很大的影响到企业的形象。保证国外客户高速地访问您的网站&#xff0c;是您在外…

网站数据分析工具

对于外贸电子商务平台而言&#xff0c;除了网站销售的产品内容及销售额外,那些很有可能直接转化为订单的数据&#xff0c;包括流量、订阅数、排名和主机等&#xff0c;也是非常重要的&#xff0c;另外还有一些其他平台的相关数据及盈利情况等等&#xff0c;也都需要外贸电子商务…

使用 Startssl 提供的免费证书+Nginx 搭建 https 的网站

使用 Startssl 提供的免费证书Nginx 搭建 https 的网站 Posted on October 1, 2010 by gkp Startssl 是一家提供免费 SSL 证书的公司&#xff0c;我们可以用其搭建 https 网站&#xff0c;貌似可以被除去Opera 外的所有主流浏览器所信任&#xff0c;过程简单记录如下&#x…

提高网站转化率,将观众变为永久用户的九个关键点

本文是博文《9 Keys to Increase Website Conversion Rate and Turn Visitors into Customers》的译文&#xff0c;编译内容如下&#xff1a; 从根本上讲&#xff0c;本文是一篇关于吸引在线用户注意力的文章&#xff0c;因为如果没有注意力&#xff0c;就没有人看你的链接、图…

PHP网站备份程序代码分享

php中通过代码备份网站的实现代码&#xff0c;很方面大家在线备份网站&#xff0c;需要的朋友可以参考下。 详细出处参考&#xff1a;http://www.jb51.net/article/27337.htm 效果图: PHP代码 <html> <head> <meta http-equiv"Content-Type&q…

使用ThinkPHP框架快速开发网站(多图)

使用ThinkPHP框架快速搭建网站 这一周一直忙于做实验室的网站&#xff0c;基本功能算是完成了。比较有收获的是大概了解了ThinkPHP框架。写一些东西留作纪念吧。如果对于同样是Web方面新手的你有一丝丝帮助&#xff0c;那就更好了挖。 以前用PHP做过一个很蹩脚的网站&#xff0…

微信扫描二维码登录网站技术原理

微信扫描二维码登录网站 网站应用微信登录开发指南 微信扫描二维码登录网站是微信开放平台下网站应用的一种接口实现的功能。微信开放平台的网址是 https://open.weixin.qq.com 准备工作 网站应用微信登录是基于OAuth2.0协议标准构建的微信OAuth2.0授权登录系统。 在进行微信…

Nginx网站服务的搭建和优化、重写跳转

1.Nginx简介 1.概况 Nginx&#xff1a; Nginx是一个高性能的HTTP和反向代理服务器是一款轻量级的高性能的web服务器/反向代理服务器/电子邮件&#xff08;IMAP/POP3&#xff09;代理服务器单台物理服务器可支持30 000&#xff5e;50 000个并发请求&#xff08;实际上20000-3…

山寨网站正确的做法

下了网站的源码&#xff0c;结果有问题&#xff0c;短时间调试无果&#xff0c;试了各种网站下载器&#xff0c;下载的网站不能看。最后&#xff0c;决定手动来。 思路&#xff1a;一个网页一个网页的扒 工具&#xff1a;火狐浏览器、迅雷、一个新建的文本、PHPStorm9、PHPStud…

网站二级域名与一级目录的选择

读者问: 很多人都说子站包围主站会很有利,想问一下关于子站的问题 子站(二级域名)相对于网站的一级目录来说,权威性是不是要大些? 搜索引擎是把子站作为独立的一个站来看待?还是也算为一级目录来看待? 如果是作为独立的一个站来看待,那主站的内容就少了,那流量会算进主站吗?…

使用Display: None来隐藏内容是合法的SEO吗?

如果你正在优化一个有上千页面的网站&#xff0c;那么你很有可能同一个CMS系统在打交道。但是&#xff0c;CMS系统经常会带来很多搜索引擎优化问题。如果CMS的开发者不熟悉搜索引擎工作原理的话&#xff0c;即使他们本来没有打算欺骗搜索引擎&#xff0c;但最终的结果还是会导致…

Web发展简史((webapp+Java原生)移动端开发 )+web网站)

Web发展简史--------->(&#xff08;webappJava原生&#xff09;移动端开发(微信小程序&#xff0c;公众号&#xff0c;头条app))web网站) Web发展简史 1&#xff1a;在那时&#xff0c;Web开发还比较简单&#xff0c;开发者经常会去操作web服务器(主要还是他自己的机器)&…

购买云服务器和搭建PHP环境,运行PHP个人网站

1&#xff1a;首先需要购买云服务器 阿里云&#xff0c;百度云&#xff0c;腾讯云&#xff0c;华为云等那一家的都一样。我以腾讯云为例子说明&#xff0c;我买的是腾讯云。 1&#xff1a;本人学生&#xff0c;直接购买腾讯云10元一月的学生服务器。购买前需要先注册腾讯云的账…

sun.com跳转到oracle.com,sun网站logo变更

今天准备下载最新版本的jdk时,发现sun网站logo已经改为oracle, 色调风格也与oracle一致。 http://java.sun.com/j2se: jdk下载页面: sun.com 跳转至oracle 怀念一下原来的sun页面: