博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用代码模拟请求和提交网页数据
阅读量:7105 次
发布时间:2019-06-28

本文共 1251 字,大约阅读时间需要 4 分钟。

通过程序代码去模拟请求和提交网页表单数据,这里我使用的是一个登录方法。代码如下:
HttpWebRequest request 
=
 (HttpWebRequest)WebRequest.Create(
@
);
string
 parms 
=
 
string
.Format(
"
txtUser={0}&txtPass={1}&submit=
"
, _username, _password);
byte
[] data 
=
 System.Text.Encoding.GetEncoding(
"
GB2312
"
).GetBytes(parms);
//
加入以下两句代码,能保留登录产生的Session数据,转到其它页时不会提示登录不成功
CookieContainer cookie 
=
 
new
 CookieContainer();
request.CookieContainer 
=
 cookie;
//
设置提交格式为POST
request.Method 
=
 
"
POST
"
;
request.ContentType 
=
 
"
application/x-www-form-urlencoded
"
;
request.ContentLength 
=
 data.Length;
Stream writer 
=
 request.GetRequestStream();
writer.Write(data, 
0
, data.Length);
writer.Close();
//
获取请求回复数据
HttpWebResponse response 
=
 (HttpWebResponse)request.GetResponse();
StreamReader reader 
=
 
new
 StreamReader(response.GetResponseStream(), System.Text.Encoding.GetEncoding(
"
GB2312
"
));
string
 content 
=
 reader.ReadToEnd();
return
 content;

这里值得注意的是几点:

1、在WebRequest.Create中使用的参数url必须是表单action的地址,即实际的提交地址。
2、提交参数,如上面第2行,一定要把表单中的文本框等收集清楚,那些hidden的input也要写上,并且保持名称统一
3、如果是模拟登录,在登录的过程中一般的应用程序都会向cookie或Session中写入数据,上面的第二段代表就是用于保留Session数据,如果没有此代码,即时登录成功,转到应用程序其它页面时,也会提示没有登录(因为验证不了登录信息)。如果只是提交表单数据,第二段代码可以省去。
获取到数据后,如何处理就不是这里的重点了。

转载于:https://www.cnblogs.com/baoposhou/archive/2008/04/25/1170603.html

你可能感兴趣的文章
动态更换view类的背景----StateListDrawable的应用
查看>>
scrapy-redis实现爬虫分布式爬取分析与实现
查看>>
Android仿微信UI布局视图(圆角布局的实现)
查看>>
docker
查看>>
OKR 方法 学习笔记
查看>>
CG资源网 - Maya教程
查看>>
http://blog.sina.com.cn/s/blog_62e1faba010147k4.html
查看>>
CSS默认可继承样式
查看>>
数据库中树形结构的表的设计
查看>>
关于Cocos2d-x的瓦片地图
查看>>
位置无关码
查看>>
find-k-pairs-with-smallest-sums
查看>>
情绪板携手视觉设计
查看>>
Atitit.php nginx页面空白 并返回500的解决
查看>>
http://blog.csdn.net/LANGXINLEN/article/details/50421988
查看>>
PHP高效率写法(详解原因)
查看>>
Swift 值类型/引用类型
查看>>
【WPF】点击滑动条(Slider),移动滑块(Tick)到鼠标点击的位置
查看>>
[每天五分钟,备战架构师-9]数据库系统
查看>>
[转]WinForm和WebForm下读取app.config web.config 中邮件配置的方法
查看>>