zoukankan      html  css  js  c++  java
  • 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; }
            }
    

  • 相关阅读:
    记录
    Excel 中显示html 数字格式的问题。
    oracle 获取 报错的问题在第几行 Dbms_Utility.Format_Error_Backtrace
    C#9.0新特性详解系列之六:增强的模式匹配
    C# 9.0新特性详解系列之五:记录(record)和with表达式
    C#9.0新特性详解系列之四:顶级程序语句(Top-Level Programs)
    C# 9.0新特性详解系列之三:模块初始化器
    C# 9.0新特性详解系列之二:扩展方法GetEnumerator支持foreach循环
    C# 9.0新特性详解系列之一:只初始化设置器(init only setter)
    C# 9.0 正式版所有新特性概述(最新完善版)
  • 原文地址:https://www.cnblogs.com/honghong75042/p/5773948.html
Copyright © 2011-2022 走看看