用户登录
用户注册

分享至

C#发送POST请求,通过 HttpWebRequest 发送JSON格式的参数

  • 作者: 该死的异地恋D
  • 来源: 51数据库
  • 2021-07-04

网上很多资料博客都有描述到这个问题,我这里再写一次总结下,我的方式也许就是你需要找的方式。至于为什么不使用其他的诸如 HttpClient 之类的,是由于业务需要。

下面就是一个封装的post方法

/// <summary>
        /// 指定Post地址 
        /// </summary>
        /// <param name="url">请求后台地址</param>
        /// <returns></returns>
        public static string Post(string url, Dictionary<string, object> parameters)
        {
            try
            { 
                string jsonString = JsonConvert.SerializeObject(parameters);
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);

                request.Method = "POST";
                request.ContentType = "application/json"; 
                using (StreamWriter dataStream = new StreamWriter(request.GetRequestStream()))
                {
                    dataStream.Write(jsonString);
                    dataStream.Close();
                }
                HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                string encoding = response.ContentEncoding;
                if (encoding == null || encoding.Length < 1)
                {
                    encoding = "UTF-8"; //默认编码  
                }
                StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding(encoding));
                var retString = reader.ReadToEnd();
                return Regex.Unescape(retString); //处理返回的字符比如unicode转为中文

            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
以上就是post方式发送json格式的参数的方法,希望对你有帮助哦!

软件
前端设计
程序设计
Java相关