您的位置:首页 > 其它

模拟Post请求

2015-08-31 17:26 239 查看
此文摘自csdn青山的博客地址:http://blog.csdn.net/a497785609/article/details/6437154

本人随笔只为方便自己查阅,也为广大网友提供方便,不喜勿喷!

#region  向Url发送post请求
/// <summary>
/// 向Url发送post请求
/// </summary>
/// <param name="postData">发送数据</param>
/// <param name="uriStr">接受数据的Url</param>
/// <returns>返回网站响应请求的回复</returns>
public static string RequestPost(string postData, string uriStr)
{
HttpWebRequest requestScore = (HttpWebRequest)WebRequest.Create(uriStr);

ASCIIEncoding encoding = new ASCIIEncoding();
byte[] data = encoding.GetBytes(postData);
requestScore.Method = "Post";
requestScore.ContentType = "application/x-www-form-urlencoded";
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


接收数据方法,

/// <summary>
/// 得到程序post过来的数据
/// </summary>
/// <returns></returns>
private string GetPostContent()
{
string postStr = string.Empty;
Stream inputStream = Request.InputStream;
int contentLength = Request.ContentLength;
int offset = 0;
if (contentLength > 0)
{
byte[] buffer = new byte[contentLength];
for (int i = inputStream.Read(buffer, offset, contentLength - offset); i > 0; i = inputStream.Read(buffer, offset, contentLength - offset))
{
offset += i;
}
UTF8Encoding encoding = new UTF8Encoding();
postStr = encoding.GetString(buffer);
}
return postStr;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: