zoukankan
html css js c++ java
C#实现通过HttpWebRequest发送POST请求实现网站自动登陆
怎样通过HttpWebRequest 发送 POST 请求到一个网页服务器?例如编写个程序实现自动用户登录,自动提交表单数据到网站等。
假如某个页面有个如下的表单(Form):
<
form name
=
"
form1
"
action
=
"
http://www.breakn.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();
Response.Write(content);
查看全文
相关阅读:
自动重连脚本
自动输入用户名密码脚本
idea 安装及配置
manjaro安装anaconda
hive 常用命令
python built-in zip()
isinstance(),issubclass()
python built-in delattr()
字符串匹配算法
贪心,分治,回溯,动态规划 4大核心算法思想
原文地址:https://www.cnblogs.com/wubiyu/p/812673.html
最新文章
基于SpringBoot项目的https
Spring Boot集成thymeleaf异步刷新页面
RestTemplate 发送 get 请求使用误区 多个参数传值为null
Spring Boot中使用Swagger2构建强大的RESTful API文档
Lombok 插件 用注解的方式来简化 get set 判断等写法
HTML起步——学习3
HTML起步——学习2
HTML起步——学习1
CSS 学习3——文字与字体、背景
CSS 3学习2
热门文章
CSS 3学习1
3.31知识点
2017.3.30知识点
JS学习之旅6
JS学习之旅5
3-1-编辑器:vim
2-2-文件系统:权限
2-1-文件系统:存储设计
manjaro pacman 常用命令
SSH自动登录脚本
Copyright © 2011-2022 走看看