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

news2024/12/25 23:56:50

简介

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请求组件你用过几种?

来源公众号:DotNet开发跳槽 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1031196.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

nndeploy:一款最新上线的支持多平台、简单易用、高性能的机器学习部署框架

项目地址&#xff1a;https://github.com/Alwaysssssss/nndeploy 介绍 nndeploy 是一款最新上线的支持多平台、高性能、简单易用的机器学习部署框架。做到一个框架就可完成多端(云、边、端)模型的高性能部署。 作为一个多平台模型部署工具&#xff0c;我们的框架最大的宗旨就…

Mac 上安装yt-dlp 和下载视频的操作

安装 打开终端&#xff0c;在终端输入 cd python的路径&#xff0c;然后输入pip3 install yt-dlp&#xff0c;如下图&#xff1b; 出现 如Successfully installed yt-dlp-2023.7.6 的时候&#xff0c;说明下载成功 下载 下载命令&#xff1a; yt-dlp --list-formats https…

来自华为的暴击?传高通裁员赔偿N+7 | 百能云芯

自9月20日起&#xff0c;高通裁员的新闻在网络上持续发酵。尽管市场充满了关于裁员细节的传言&#xff0c;但截至目前&#xff0c;高通官方尚未对此发表评论。 消息称&#xff0c;高通此次裁员的“重灾区”在上海的无线研发部门&#xff0c;甚至有传言称将直接关闭上海研发中心…

干货 | 汽车行业研发效能提升的挑战与实践案例

在 9 月 15 日的第七届 CSN 大会上&#xff0c;思码逸研发效能专家王艳萍受邀分享了《汽车行业研发效能提升的挑战与实践案例》。演讲包含了思码逸对多家汽车企业服务过程中总结出的行业痛点、解决方案&#xff0c;以及实践案例。 以下为演讲实录&#xff1a; 思码逸与很多知名…

基于微信小程序的校园生活管理系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言运行环境学生微信端的主要功能有&#xff1a;管理员的主要功能有&#xff1a;具体实现截图视频演示为什么选择我自己的网站自己的小程序&#xff08;小蔡coding&#xff09;有保障的售后福利 代码参考源码获取 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝1…

Aztec交易架构解析

1. 引言 前序博客有&#xff1a; Aztec的隐私抽象&#xff1a;在尊重EVM合约开发习惯的情况下实现智能合约隐私完全保密的以太坊交易&#xff1a;Aztec网络的隐私架构Aztec.nr&#xff1a;Aztec的隐私智能合约框架——用Noir扩展智能合约功能Account Abstraction账号抽象——…

【@胡锡进】大模型量化分析- 药明康德 603259.SH

我将使用不同的预测方法进行药明康德股票未来3天价格的预测。以下是每种方法的预测方法、详细代码和预测价格&#xff08;根据提供的数据进行模拟&#xff09;。 SARIMA模型预测&#xff1a; SARIMA&#xff08;季节性自回归移动平均&#xff09;模型适用于具有明显季节性的时…

PHP8中调换数组中的键值和元素值-PHP8知识详解

在php8中使用array_flip()函数可以调换数组中的键值和元素值。 在PHP8中使用array_flip()函数可以调换数组中的键值和元素值&#xff0c;示范代码如下&#xff1a; <?php$stu array("子涵"> 001,"欣怡"> 002,"梓涵">003,"晨曦…

华为OD机试 - 特异性双端队列(Java 2023 B卷 100分)

目录 专栏导读一、题目描述二、输入描述三、输出描述四、Java算法源码五、效果展示1、输入2、输出 华为OD机试 2023B卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试&#xff08;JAVA&#xff09;真题&#xff08;A卷B卷&#xff09;》。 刷的越多…

TikTok的全球影响:跨文化、跨国界的短视频文化

随着TikTok的崛起&#xff0c;短视频文化正在以前所未有的方式迅速传播&#xff0c;跨足了不同国家和文化的边界。本文将探讨TikTok的全球影响&#xff0c;以及它如何促进了跨文化交流和文化融合。 短视频&#xff1a;跨越语言和文化的沟通工具 TikTok的短视频格式具有独特的跨…

Downie 4下载画质的设置方法,downie 4设置下载清晰度

downie4除了能够下载网页视频外&#xff0c;大家还能根据需要自定义下载文件的分辨率&#xff0c;是Mac电脑必备的下载工具&#xff0c;Downie4下载画质如何设置&#xff1f;下面就来告诉大家具体的设置方法吧。 下载&#xff1a;Downie 4中文直装版 没修改之前&#xff0c;Dow…

SpringBoot 之配置加密

Jasypt库的使用 Jasypt是一个Java简易加密库&#xff0c;用于加密配置文件中的敏感信息&#xff0c;如数据库密码。 Jasypt库与springboot集成&#xff0c;在实际开发中非常方便。 1、引入依赖 <dependency><groupId>com.github.ulisesbocchio</groupId>&…

人工智能AI 全栈体系(四)

第一章 神经网络是如何实现的 除了全连接神经网络外&#xff0c;还有其他形式的神经网络。 此节将讲述神经网络的另一种形式&#xff1a;卷积神经网络。 四、卷积神经网络 首先我们看看全连接神经网络有什么不足。正如其名字一样&#xff0c;全连接神经网络&#xff0c;两个…

STM32F4X UCOSIII 事件集

STM32F4X UCOSIII 事件集 事件的应用场景UCOSIII事件工作机制UCOSIII事件操作函数事件创建函数事件删除函数事件发送函数事件接收函数 UCOSIII事件例程 事件在RTOS中也是一种任务间同步的机制&#xff0c;事件不能传递数据。跟信号量不同的是&#xff0c;事件可以实现一对多&am…

C++11之基础篇

C11 C11简介统一的列表初始化&#xff5b;&#xff5d;初始化std::initializer_list 声明autodecltypenullptr范围for循环 STL中一些变化arrayforward_listunderored_map&#xff0c;underored_set C11简介 在2003年C标准委员会曾经提交了一份技术勘误表(简称TC1)&#xff0c;…

HEC-RAS 1D/2D水动力与水环境模拟教程

详情点击公众号技术科研吧链接&#xff1a;HEC-RAS 1D/2D水动力与水环境模拟教程 前言 水动力与水环境模型的数值模拟是实现水资源规划、环境影响分析、防洪规划以及未来气候变化下预测和分析的主要手段。然而&#xff0c;一方面水动力和水环境模型的使用非常复杂&#xff0c…

买卖股票的最佳时机 IV

买卖股票的最佳时机 IV 力扣链接&#xff1a;188. 买卖股票的最佳时机 IV 题目描述 给你一个整数数组 prices 和一个整数 k &#xff0c;其中 prices[i] 是某支给定的股票在第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你最多可以完成 k 笔交易。也就是说&a…

动态面板案例分析

动态面板模型分析 如果在面板模型中&#xff0c;解释变量包括被解释变量的滞后值&#xff0c;此时则称之为“动态面板模型”&#xff0c;其目的是处理内生性问题。动态面板模型发展分为3个阶段&#xff0c;第1阶段是由Arellano and Bond(1991)提出的差分GMM(difference GMM)&a…

MidJourney | 教你如何做出好看的插画

企业插画主要基于关键词Corporate Flat Illustration&#xff08;企业平面插画&#xff09;构成&#xff0c;再结合常用的设计风格&#xff0c;比如孟菲斯风格&#xff0c;线条艺术&#xff0c;梦幻色调等关键词辅助&#xff0c;然后根据你产品需求&#xff0c;融合插画色彩等组…

文章采集,根据标题全网采集文章

无论您是一名学生、研究人员、内容创作者还是企业家&#xff0c;都需要从互联网上搜集文章来获取有价值的信息。然而&#xff0c;如何高效地进行文章采集并找到符合您需求的内容呢&#xff1f; 在日常生活和工作中&#xff0c;我们经常需要查找和整理各种文章和信息。这可能包括…