向Url发送post请求传递参数

        #region  向Url发送post请求,返回网站响应内容
        /// <summary>
        /// 向Url发送post请求,返回网站响应内容
        /// </summary>
        /// <param name="postData">发送数据</param>
        /// <param name="uriStr">接受数据的Url</param>
        /// <param name="action">更新操作</param>
        /// <returns>返回网站响应内容</returns>
        public static string RequestPost(string postData, string uriStr, string action)
        {
            HttpWebRequest requestScore = (HttpWebRequest)WebRequest.Create(uriStr);
            StringBuilder postContent = new StringBuilder();
            Encoding myEncoding = Encoding.GetEncoding("gb2312");
            postContent.Append(HttpUtility.UrlEncode("message", myEncoding));
            postContent.Append("=");
            postContent.Append(HttpUtility.UrlEncode(postData, myEncoding));
            postContent.Append("&");
            postContent.Append(HttpUtility.UrlEncode("type", myEncoding));
            postContent.Append("=");
            postContent.Append(HttpUtility.UrlEncode("sync", myEncoding));
            postContent.Append("&");
            postContent.Append(HttpUtility.UrlEncode("action", myEncoding));
            postContent.Append("=");
            postContent.Append(HttpUtility.UrlEncode(action, myEncoding));


            byte[] data = Encoding.ASCII.GetBytes(postContent.ToString());
            requestScore.Method = "Post";
            requestScore.ContentType = "application/x-www-form-urlencoded;charset=gb2312";
            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


网站接收数据:

            string message = Request.Form["message"];
            string type = Request.Form["type"];
            string action = Request.Form["action"];

posted @   清山博客  阅读(40885)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
历史上的今天:
2010-07-02 SQL连接查询2 外连接(左右联接查询)
2010-07-02 SQL连接查询1 内联接查询
2010-07-02 KPI(Key Performance Indicators )
点击右上角即可分享
微信分享提示