//调用方法
Dictionary<
string
,
string
> postData =
new
Dictionary<
string
,
string
>();
postData.Add(
"user"
,
"aaa"
);
postData.Add(
"pass"
,
"bbb"
);
GetPageByPost(
"http://www.xxx.com/send.aspx"
, postData, Encoding.UTF8);
/// <summary>
/// 以 Post 方式提交网页数据,获得服务器返回的数据
/// </summary>
/// <param name="url"> Url </param>
/// <param name="postData">Post 数据</param>
/// <param name="encoder">网页编码</param>
/// <returns>服务器返回的数据</returns>
public
string
GetPageByPost(
string
url, Dictionary<
string
,
string
> postData, Encoding encoder)
{
string
html =
""
;
HttpWebRequest webReq = (HttpWebRequest)WebRequest.Create(url);
webReq.Method =
"POST"
;
Stream reqStream =
null
;
if
(postData !=
null
&& postData.Count > 0) {
StringBuilder sb =
new
StringBuilder();
foreach
(KeyValuePair<
string
,
string
> kv
in
postData) {
sb.Append(HttpUtility.UrlEncode(kv.Key));
sb.Append(
"="
);
sb.Append(HttpUtility.UrlEncode(kv.Value));
sb.Append(
"&"
);
}
byte
[] data = Encoding.UTF8.GetBytes(sb.ToString().TrimEnd(
'&'
));
webReq.ContentType = ContentType;
webReq.ContentLength = data.Length;
reqStream = webReq.GetRequestStream();
reqStream.Write(data, 0, data.Length);
}
HttpWebResponse webResp = (HttpWebResponse)webReq.GetResponse();
Stream stream = webResp.GetResponseStream();
StreamReader sr =
new
StreamReader(stream, encoder);
html = sr.ReadToEnd();
sr.Close();
stream.Close();
if
(reqStream !=
null
) {
reqStream.Close();
}
return
html;
}