概述
c# post请求发送数据
/// <summary>
/// POST请求
/// </summary>
/// <param name="url">请求地址</param>
/// <param name="val">请求值</param>
/// <param name="encoding">编码格式</param>
/// <returns></returns>
public string GetHttpPostResponse(string url, string val, Encoding encoding)
{
string strResult = string.Empty;
try
{
HttpWebRequest myReq = (HttpWebRequest)HttpWebRequest.Create(url);
myReq.Method = "Post";
myReq.ContentType = "application/x-www-form-urlencoded";
byte[] byteArray = encoding.GetBytes(val);
myReq.ContentLength = byteArray.Length;
Stream stream = myReq.GetRequestStream();
stream.Write(byteArray, 0, byteArray.Length);
stream.Close();
HttpWebResponse HttpWResp = (HttpWebResponse)myReq.GetResponse();
Stream myStream = HttpWResp.GetResponseStream();
StreamReader sr = new StreamReader(myStream, encoding);
strResult = sr.ReadToEnd();
}
catch{}
return strResult;
}
如果数据量过大,则建议使用流的方式
方法如下
byte[] bytes=null; if(sType=="2") { bytes= Encoding.UTF8.GetBytes(sb.ToString()); } else { bytes= Encoding.UTF8.GetBytes(sbd.ToString()); } bool b =PostBaitourZrateModel(strurl,bytes);
/// <summary> /// POST数据得到结果 /// </summary> /// <param name="strUrl">URL</param> /// <param name="strParm">参数</param> /// <returns>string</returns> private static bool PostBaitourZrateModel(string strUrl, byte[] strParm) { StringBuilder str = new StringBuilder(); bool isRec = false; try { Encoding encode = System.Text.Encoding.UTF8; HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create(strUrl); myReq.Timeout = 900000; myReq.Method = "POST"; myReq.ContentType = "multipart/form-data"; myReq.ContentLength = strParm.Length; myReq.AllowWriteStreamBuffering = false; Stream outStream = myReq.GetRequestStream(); outStream.Write(strParm, 0, strParm.Length); outStream.Close(); WebResponse myResp = null; myResp = myReq.GetResponse(); Stream ReceiveStream = myResp.GetResponseStream(); StreamReader readStream = new StreamReader(ReceiveStream, encode); Char[] read = new Char[256]; int count = readStream.Read(read, 0, 256); while (count > 0) { str.Append(new String(read, 0, count)); count = readStream.Read(read, 0, 256); } readStream.Close(); myResp.Close(); if (str.ToString().ToUpper().IndexOf("SUCCESS") >= 0) { isRec = true; } } catch (Exception ex) { isRec = false; new Error().WriteFilesErrorLog(ex.Message,"12580消息通知"); } return isRec; }
C#接收post请求的数据
private string PostInput() { try { System.IO.Stream s = Request.InputStream; int count = 0; byte[] buffer = new byte[1024]; StringBuilder builder = new StringBuilder(); while ((count = s.Read(buffer, 0, 1024)) > 0) { builder.Append(Encoding.UTF8.GetString(buffer, 0, count)); } s.Flush(); s.Close(); return builder.ToString(); } catch (Exception ex) { throw ex; } }
转载于:https://www.cnblogs.com/honghong75042/p/5773948.html
最后
以上就是冷傲大侠为你收集整理的c#POST请求和接收post请求的全部内容,希望文章能够帮你解决c#POST请求和接收post请求所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复