c#POST请求和接收post请求

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值