C# 简单GET、POST请求接口代码

提示:记得Nuget引进 代码所需的DLL

简单GET请求

//Url:请求接口链接
//ContentType:编码方式
public static string Http_Get(string Url,string ContentType= "text/html;charset=UTF-8")
        {
            HttpWebRequest request = null;
            HttpWebResponse response = null;
            Stream myResponseStream = null;
            StreamReader myStreamReader = null;
            string retString = string.Empty;
            try
            {
                request = (HttpWebRequest)WebRequest.Create(Url);
                request.Method = "GET";//设定请求方式
                //request.Timeout = 5000;//设置接口超时时间
                if (!string.IsNullOrWhiteSpace(ContentType))
                {
                    request.ContentType = ContentType;
                }                
                response = (HttpWebResponse)request.GetResponse();
                myResponseStream = response.GetResponseStream();
                myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8"));
                retString = myStreamReader.ReadToEnd();
            }catch(Exception ex) { }
            finally
            {
                if (myStreamReader != null) { myStreamReader.Close(); myStreamReader.Dispose(); }
                if (myResponseStream != null) { myResponseStream.Dispose(); }
                if (response != null) { response.Dispose(); }
                if (request != null) { request.Abort(); }
            }
            return retString;
        }        

POST请求

 public static string PostTest(string 参数1,string 参数2)
        {
            var strjson = "";//请求返回数据
            
            var RequestUrl = "";//接口请求链接
            
            Uri url = new Uri(RequestUrl);
            
            // 创建Web请求
            HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
            
            // 设置以POST方式发送请求
            request.Method = "POST";
            
            request.ContentType = "application/x-www-form-urlencoded";
            
            StringBuilder data = new StringBuilder();//准备拼接请求参数,记得参数要先进行编码,再请求
            
            data.Append("参数名=" + HttpUtility.UrlEncode(参数1));
            data.Append("&参数名=" + HttpUtility.UrlEncode(参数2));

            // 将参数转为byte数组  
            byte[] byteData = UTF8Encoding.UTF8.GetBytes(data.ToString());

            // 设置请求头内容的长度
            request.ContentLength = byteData.Length;

            // 将参数写入请求流
            using (Stream postStream = request.GetRequestStream())
            {
                postStream.Write(byteData, 0, byteData.Length);
            }
            // 获取Web服务器输出的数据
            using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
            {
                // 取得输出流
                StreamReader reader = new StreamReader(response.GetResponseStream());

                //返回数据
                strjson = reader.ReadToEnd();

            }
            return strjson;
        }
			

注意:post 请求时参数最好要进行 UrlEncode 编码,防止接口识别不出参数

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值