(HttpWebRequest )服务器上传请求Post方式

这段代码展示了如何使用C#的HttpWebRequest类通过POST方式向服务器上传数据。它首先将参数转换为指定编码的字节数组,然后设置请求头、请求方式和内容长度,接着写入数据流并获取响应。如果响应状态码为OK,则进行解压缩并读取响应内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 /// <summary>
        /// 上传的文件
        /// </summary>
        /// <param name="url">服务器请求地址</param>
        /// <param name="paramDate">发送的数据</param>
        /// <param name="encode">网站编码</param>
        /// <returns>字符串类型的true/false</returns>
        public static string PostMoth(string url, string paramDate, Encoding encode)
        {
            string str=string .Empty;
            try
            {
                byte[] byteArray = encode.GetBytes(paramDate);//将数据转换成对应的网站编码
                GC.Collect();
                HttpWebRequest webRequest = (HttpWebRequest)HttpWebRequest.Create(url);//发出请求
                //ServicePointManager.DefaultConnectionLimit = 100;
                webRequest.ContentType = "application/x-www-form-urlencoded";//报表头类型
                webRequest.Method = "POST";//请求方式Post
                webRequest.Timeout = 12000;//请求的超时时间
                webRequest.ContentLength = byteArray.Length;//获取要传输的长度
                Stream requeststream = webRequest.GetRequestStream();//获取写入的数据流
                //StreamWriter strw = new StreamWriter(requeststream);
                requeststream.Write(byteArray,0,byteArray .Length);//将数据写入到当前流中
                HttpWebResponse webResponse = (HttpWebResponse)webRequest.GetResponse();//返回来自服务器的相应 
                if (webResponse.StatusCode == HttpStatusCode.OK)
                {
                    if (webResponse.Headers["Content-Encoding"] != null && webResponse.Headers["Content-Encoding"].ToLower().Contains("gzip"))//如果http头中接受gzip的话,这里就要判断是否为有压缩,有的话,直接解压缩即可
                    {
                        requeststream = new GZipStream(requeststream, CompressionMode.Decompress);//解压缩基础流
                    }
                    StreamReader strReader = new StreamReader(webResponse.GetResponseStream(), Encoding .Default );//读取对应编码的文件流
                    str = strReader.ReadToEnd();//读文件流至最后
                    webResponse.Close();
                    strReader.Close();
                    requeststream.Close();//关闭文件流
                    return "true";
                }
                else
                {
                    return "false";
                }
            }
            catch (Exception e)
            {
                return e.ToString ();
            }
        }
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值