.NET超简单轻量级的HTTP请求组件Flurl

打印 上一主题 下一主题

主题 857|帖子 857|积分 2571

简介
Flurl是一个用于构建基于HTTP请求的C#代码的库。它的主要目的是简化和优雅地处理网络请求(只用很少的代码完成请求)。Flurl提供了一种简单的方法来构建GET、POST、PUT等类型的请求,以及处理响应和异常。它还提供了一些高级功能,如链式调用、缓存请求结果、自动重定向等。本文将介绍Flurl的GET、POST请求功能和序列化功能。
使用流程
1、创建一个APS.NET API站点,作为Flurl的请求源
在API里分别新建控制器,在控制器中建get、post两个方法。部分方法代码如下
  1. [HttpGet]
  2.  public IEnumerable<string> Get()
  3.  {
  4.     return new string[] { "欢迎关注公众号", "DotNET开发跳槽" };
  5.   }
  6. //这是一个post请求,Test是一个类,分别包含了Id和name两个字段
  7. [HttpPost("Posttest")]
  8. public string Posttest( Test value)
  9. {
  10.      return value.Name;
  11. }
复制代码
2、新建一个控制台程序,作为Flurl请求的平台
首先用nuget安装Flurl,如果在vs里可以使用nuget安装,需要安装安装Flurl和Flurl.Http两个包。命令如下:
  1. install-package Flurl;
  2. install-package Flurl.Http;
复制代码
然后新建两个方法,一个用于请求get,一个用于post。代码如下:
  1.     public async Task<string> Get() {
  2.             string url = "http://localhost:5232/api/Test";
  3.             var response =await  url.GetAsync();
  4.             string result = await response.GetStringAsync();
  5.             return result;
  6.      }
  7.      public async Task<string> Post()
  8.      {
  9.         string url = "http://localhost:5232/api/Test/Posttest";
  10.         var test = new  { Id = 1, Name = "关注公众号dotnet开发跳槽" };
  11.         var response = await url.PostJsonAsync(test);//将对象序列化为json 并传参数
  12.         string result = await response.GetStringAsync();
  13.         return result;
  14.      }
  15.   }
复制代码
从上面代码可以看出,get使用Flurl就两行代码返回值,而post加上请求参数也才三行代码。是不是很简洁。但是注意的是使用post传json的时候千万别序列化对象,因为它已经帮你序列化为JSON字符串了。
上面的例子效果分别如下:


Flurl还自带序列化和反序列化功能。demo代码如下:
  1. var json = await url.GetJsonAsync();
  2. //将JSON反序列化为对象
  3.  var products = json.DeserializeJson<List<Product>>();
  4.  //将对象序列化为json 并传参数
  5. var response = await url.PostJsonAsync(test);
复制代码
简单吧,只需要几行代码解决序列化问题,省去了引用或者安装json包了。
上面只列出了Flurl的部分功能,其它功能请参考官网:
https://flurl.dev
结语
本文讲述了Flurl的GET、POST请求功能和序列化功能,适合初学者阅读和学习,实际项目使用需要根据情况参考官网使用。Flurl 适用于需要执行HTTP请求的.NET应用程序。它可以用于构建 RESTful API 客户端、Web 爬虫、数据抓取工具等。希望本文对你的项目有所收获,同时欢迎留言或者吐槽本文。
推荐阅读
1、在.NET Core使用 HttpClient 的正确方式
2、.NET几种HTTP请求组件你用过几种?
  1. 来源公众号:DotNet开发跳槽 
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

何小豆儿在此

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表