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

这篇具有很好参考价值的文章主要介绍了.NET超简单轻量级的HTTP请求组件Flurl。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

简介

Flurl是一个用于构建基于HTTP请求的C#代码的库。它的主要目的是简化和优雅地处理网络请求(只用很少的代码完成请求)。Flurl提供了一种简单的方法来构建GET、POST、PUT等类型的请求,以及处理响应和异常。它还提供了一些高级功能,如链式调用、缓存请求结果、自动重定向等。本文将介绍Flurl的GET、POST请求功能和序列化功能。

使用流程

1、创建一个APS.NET API站点,作为Flurl的请求源

在API里分别新建控制器,在控制器中建get、post两个方法。部分方法代码如下

 [HttpGet]
 public IEnumerable<string> Get()
 {
    return new string[] { "欢迎关注公众号", "DotNET开发跳槽" };
  }
//这是一个post请求,Test是一个类,分别包含了Id和name两个字段
[HttpPost("Posttest")]
 public string Posttest( Test value)
 {
     return value.Name;
 }

2、新建一个控制台程序,作为Flurl请求的平台

首先用nuget安装Flurl,如果在vs里可以使用nuget安装,需要安装安装Flurl和Flurl.Http两个包。命令如下:

install-package Flurl;
install-package Flurl.Http;

然后新建两个方法,一个用于请求get,一个用于post。代码如下:

    public async Task<string> Get() {
            string url = "http://localhost:5232/api/Test";
            var response =await  url.GetAsync();
            string result = await response.GetStringAsync();
            return result;
     }
     public async Task<string> Post()
     {
        string url = "http://localhost:5232/api/Test/Posttest";
        var test = new  { Id = 1, Name = "关注公众号dotnet开发跳槽" };
        var response = await url.PostJsonAsync(test);//将对象序列化为json 并传参数
        string result = await response.GetStringAsync(); 
        return result;
     }
  }

从上面代码可以看出,get使用Flurl就两行代码返回值,而post加上请求参数也才三行代码。是不是很简洁。但是注意的是使用post传json的时候千万别序列化对象,因为它已经帮你序列化为JSON字符串了。

上面的例子效果分别如下:

Flurl还自带序列化和反序列化功能。demo代码如下:

var json = await url.GetJsonAsync();
//将JSON反序列化为对象
 var products = json.DeserializeJson<List<Product>>();
 //将对象序列化为json 并传参数
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请求组件你用过几种?文章来源地址https://www.toymoban.com/news/detail-712127.html

来源公众号:DotNet开发跳槽 

到了这里,关于.NET超简单轻量级的HTTP请求组件Flurl的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 轻量级.net standard微信支付登录Nuget开源库

    我个人编写的库,在我个人网站,小程序等很多地方都在使用中,大家可以搜索小程序 什邡市宅猫君网络工作室 或者到我的网站 store.zhaimaojun.cn 去体验支付和登录效果。 本库主要实现了native pay(二维码支付)jsapi pay(小程序直接调起支付),需要注意的是这是基于api3的,

    2024年03月15日
    浏览(91)
  • Forest-极简的轻量级HTTP调用API框架

    是不是一想到要对接第三方系统接口就发愁,尤其是与其他系统有大量接口交互时,不得不应对各种请求方式、设置各种不同的头、不同的返回、需要权限或token验证等等,将头疼不已,即使有Httpclient似乎还是要写很多的代码,那么Forest将解决你这一烦恼。 Forest是专注于简化

    2024年02月06日
    浏览(30)
  • 一个小巧、快速、轻量级的 .NET NoSQL 嵌入式数据库

    今天给大家分享一个小巧、快速、轻量级的 .NET NoSQL 嵌入式数据库:LiteDB。本篇文章主要是介绍LiteDB和在.NET中如何使用。 LiteDB 是一个小巧、快速和轻量级的 .NET NoSQL 嵌入式数据库。 无服务器的 NoSQL 文档存储 简单的 API,类似于 MongoDB 100% 的 C# 代码支持 .NET 4.5 / NETStandard 1.

    2024年02月02日
    浏览(34)
  • 『SEQ日志』在 .NET中快速集成轻量级的分布式日志平台

    📣读完这篇文章里你能收获到 如何在Docker中部署 SEQ:介绍了如何创建和运行 SEQ 容器,给出了详细的执行操作 如何使用 NLog 接入 .NET Core 应用程序的日志:详细介绍了 NLog 和 NLog.Seq 来配置和记录日志的步骤 日志记录示例:博客提供了一个简单的日志记录示例,展示了如何在

    2024年02月11日
    浏览(43)
  • QtWebApp介绍、下载和搭建http轻量级服务器Demo

    QtWepApp是一个C++中的HTTP服务器库,其灵感来自Java Servlet。适用于Linux、Windows、Mac OS和Qt Framework支持的许多其他操作系统。   QtWebApp包含以下组件: • HTTP(S)1.0和1.1服务器 • 模板引擎 • 缓冲记录器   这些组件可以相互独立地使用。一个非常小的用法示例: 官方: http:

    2024年02月12日
    浏览(72)
  • 扔掉okhttp、httpClient,这款轻量级 HTTP 神器好用到爆

    前言 功能特性 快速使用 HTTP请求相关注解 配置项说明 高级功能 全局拦截器 调用适配器和数据转码器 总结 在 SpringBoot 项目直接使用 okhttp 、 httpClient 或者 RestTemplate 发起 HTTP 请求,既繁琐又不方便统一管理。因此,在这里推荐一个适用于 SpringBoot 项目的轻量级HTTP客户端框架

    2024年02月07日
    浏览(58)
  • 【KRouter】一个简单且轻量级的Kotlin Routing框架

    KRouter(Kotlin-Router)是一个简单而轻量级的Kotlin路由框架。 具体来说,KRouter是一个通过URI来发现接口实现类的框架。它的使用方式如下: 之所以这样做,是因为在使用Voyager一段时间后,我发现模块之间的通信不够灵活,需要一些配置,而且使用DeepLink有点奇怪,所以我更喜

    2024年02月09日
    浏览(27)
  • C++轻量级Web服务器TinyWebServer源码分析之http篇

    http类这篇个人觉得是最难同时也是最繁琐的一篇,本篇在基础知识方面,包括epoll、HTTP报文格式、状态码和有限状态机,不做赘述,所有源码分析的篇章基础知识会做单开一篇或者读者可以看 小白一文看懂社长服务器 来补基础知识。真的佩服那个叫社长的男人,我读代码且

    2024年02月10日
    浏览(35)
  • Ip-Limit: 轻量级注解式IP限流组件(二)

    该项目为ip-limiter的使用示例项目。 ip-limiter地址: https://github.com/DDAaTao/ip-limiter 示例项目文件树 核心限流模式 - LimitType类 DEFAULT - 走默认限流策略,不考虑黑白名单参数 WHITE_LIST - 只考虑白名单策略,非白名单的请求全部回绝 BLACK_LIST - 只考虑黑名单策略,非黑名单请求不做限流措

    2024年02月15日
    浏览(28)
  • Ip-Limit: 轻量级注解式IP限流组件(一)

    基于JVM缓存的轻量级、注解式IP限流组件,方便项目快速引用,满足多线程场景。 默认为滑动窗口限流器,内置令牌桶限流器,可通过注解的属性配置修改 项目Github地址: https://github.com/DDAaTao/ip-limiter 项目Gitee地址:https://gitee.com/fanwentaomayun/ip-limiter 使用样例 包含较为详细的

    2024年02月16日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包