您的位置:首页 > 其它

向Url发送post请求传递参数

2011-07-02 13:05 435 查看
#region 向Url发送post请求,返回网站响应内容
/// <summary>
/// 向Url发送post请求,返回网站响应内容
/// </summary>
/// <param name="postData">发送数据</param>
/// <param name="uriStr">接受数据的Url</param>
/// <param name="action">更新操作</param>
/// <returns>返回网站响应内容</returns>
public static string RequestPost(string postData, string uriStr, string action)
{
HttpWebRequest requestScore = (HttpWebRequest)WebRequest.Create(uriStr);
StringBuilder postContent = new StringBuilder();
Encoding myEncoding = Encoding.GetEncoding("gb2312");
postContent.Append(HttpUtility.UrlEncode("message", myEncoding));
postContent.Append("=");
postContent.Append(HttpUtility.UrlEncode(postData, myEncoding));
postContent.Append("&");
postContent.Append(HttpUtility.UrlEncode("type", myEncoding));
postContent.Append("=");
postContent.Append(HttpUtility.UrlEncode("sync", myEncoding));
postContent.Append("&");
postContent.Append(HttpUtility.UrlEncode("action", myEncoding));
postContent.Append("=");
postContent.Append(HttpUtility.UrlEncode(action, myEncoding));

byte[] data = Encoding.ASCII.GetBytes(postContent.ToString());
requestScore.Method = "Post";
requestScore.ContentType = "application/x-www-form-urlencoded;charset=gb2312";
requestScore.ContentLength = data.Length;
requestScore.KeepAlive = true;
Stream stream = requestScore.GetRequestStream();
stream.Write(data, 0, data.Length);
stream.Close();
HttpWebResponse responseSorce;
try
{
responseSorce = (HttpWebResponse)requestScore.GetResponse();
}
catch (WebException ex)
{
responseSorce = (HttpWebResponse)ex.Response;//得到请求网站的详细错误提示
}
StreamReader reader = new StreamReader(responseSorce.GetResponseStream(), Encoding.UTF8);
string content = reader.ReadToEnd();
requestScore.Abort();
responseSorce.Close();
responseSorce.Close();
reader.Dispose();
stream.Dispose();
return content;
}
#endregion

网站接收数据:

string message = Request.Form["message"];
string type = Request.Form["type"];
string action = Request.Form["action"];
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: