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);
查看全文
相关阅读:
eclipse常用快捷键
Sql server 问题诊断
Oracle 表格大小分析
VM虚拟机增加磁盘空间
Linux搭建Nexus+Maven私人仓库
Linux 下安装Git 版本管理工具 使用记录
Jenkins 环境打建设 Linux
Oracle 数据库用户表大小分析
Windgb 其他常用命令
Windbg 查内存占用
原文地址:https://www.cnblogs.com/wubiyu/p/812673.html
最新文章
元素分类
图解闭包
Javascript闭包——懂不懂由你,反正我是懂了
10种精密全波整流电路
C语言中%d %.2d %2d %02d的区别
STM32硬件错误HardFault_Handler的处理方法
485通信自动收发电路详解
实现简单的TCP服务端和客户端1
回调函数
压敏电阻的符号、工作原理、类型和作用
热门文章
二倍压整流电路
BUCK转换电路的工作原理
PWM与电压如何高速转换
集成WebSecurity的Authorize进行身份验证时,数据库连接报错问题
Html.ActionLink传递参数
Automapper结合EF实现insert,update方法
前缀树
第一章概述
解决windows中python——pip安装第三方慢的方法
java注解和反射
Copyright © 2011-2022 走看看