想学.net core web api怎么使用?我教你呀!

本文介绍了如何使用.NET Core WebAPI实现Post和Get请求的具体方法。包括编写API、处理请求及响应数据等内容,并提供了详细的代码示例。

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

.net core web api 的使用

参考了这两位老哥的:感谢老哥的Get请求
其次就是下方这个视频。

一、准备好我们自己写好的Api(如何写api推荐给大家一个视频教程api2.1开发)事后我也会自己写篇博客,但是内容与视频内容差不多。

二、先来写post方法的公共类,到时候我们需要直接调用它就完事了。

/// <summary>
        /// Post请求方法
        /// </summary>
        /// <param name="url">请求的路径</param>
        /// <param name="postData">用户传入的数据(json格式也可以是字符串)</param>
        /// <returns></returns>
        public static string Post(string url,string postData)
        {
            //创建一个请求:指明需要请求到那个url
            HttpWebRequest request =(HttpWebRequest)WebRequest.Create(url);
            //请求时数据内容用什么类型发送(application/json)
            request.ContentType = "application/json";
            //请求的方法(Post,get)
            request.Method = "POST";
            //超时时长
            request.Timeout = 10000;

            //post 需要将参数进行编码为utf-8格式
            byte[] bytes = Encoding.UTF8.GetBytes(postData);
            request.ContentLength = bytes.Length;
            Stream writer = request.GetRequestStream();
            writer.Write(bytes,0,bytes.Length);
            writer.Close();

            //throw new InvalidOperationException()抛出无效操作异常(我上面已经try catch了可以不用)
            HttpWebResponse response =(HttpWebResponse)request.GetResponse();
            StreamReader reader = new StreamReader(response.GetResponseStream()?? throw new InvalidOperationException(),Encoding.UTF8);
            string result = reader.ReadToEnd();
            reader.Close();
            return result;

        }

自己写的Post方法调用

#region Post请求
                /*
                  //请求api 的地址
                  string url = "http://localhost:52867/book/add";

                  //用户发过来的数据
                  AddRequest addRequest = new AddRequest
                  {
                      ISBN = "2",
                      name = "1",
                      authors = null,
                      price = "1",
                  };
                  //将对象转换为json字符串
                  string res_str = JsonConvert.SerializeObject(addRequest);
                  Console.WriteLine($"[请求时的数据:]{res_str}");

                  //调用post请求的方法,发起请求并接受返回的值
                  string result = Post(url, res_str);
                  Console.WriteLine($"[返回时的数据:]{result}");
      */
                #endregion

三、Get方法:

  /// <summary>
        /// Get请求方法
        /// </summary>
        /// <param name="url"></param>
        /// <returns></returns>
        public static  string Get(string url)
        {
            //首先创建一个httpRequest,用Webrequest.Create(url)的方法
            HttpWebRequest httpRequest = (HttpWebRequest)WebRequest.Create(url);
            //初始化httpRequest,申明用的GET方法请求http
            httpRequest.Timeout = 2000;
            httpRequest.Method = "GET";
            //创建一个httpResponse,存放服务器返回信息
            HttpWebResponse httpResponse = (HttpWebResponse)httpRequest.GetResponse();
            StreamReader sr = new StreamReader(httpResponse.GetResponseStream(), System.Text.Encoding.UTF8);
            //页面读完了,result接收结果
            string result = sr.ReadToEnd();

            //一个新字符串,其中当前实例中出现的所有指定字符串都替换为另一个指定的字符串 Replace(string oldValue,string newValue)
            //result = result.Replace("\r", "").Replace("\n", "").Replace("\t", "");

            //请求状态的反馈
            //int status = (int)httpResponse.StatusCode;

            sr.Close();
            Console.WriteLine(result);
            return result;

        }

调用:

 #region Get请求
                string URL = "https://localhost:44330/actionapi/Comm/byIdGetComm?id=1&content=公牛牛皮";
                string rep = Get(URL);
                Console.WriteLine(rep);
                #endregion

**总结:**大概就这么用,大家其实可以对比一下Post与Get方法处理处理响应数据时的区别,无非就时编码的那一块,Post请求可能会导致传入的参数乱码,所以要先处理乱码,在传值,Get请求在路径后面传参,一般不会乱码,我觉得是这个原因,如果有知道的老哥望告知,有什么不对的地方也欢迎指点。感谢。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值