如某个页面有个如下的表单(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);

<
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); 
Trackback: http://tb.blog.youkuaiyun.com/TrackBack.aspx?PostId=1839952
本文介绍如何使用C#实现向指定URL以POST方式提交表单数据,并展示了完整的代码示例,包括设置请求头、构造POST数据及读取响应。

333

被折叠的 条评论
为什么被折叠?



