Flurl 组件使用
简介
先发上官网地址:https://flurl.dev/
Flurl 是一个异步的、可测试的、可移植的、URL 构建器和 .NET 的 HTTP 客户端库;Flurl 在NuGet上可用,可免费用于商业用途。它可以在各种平台上运行,包括 .NET Framework、.NET Core、Xamarin 和 UWP。
它能解决什么痛点
日常服务端调用接口,大都是通过HttpHelper实现,如果没有类库要不自己手敲要不网上找,显得我们技术很low,Flurl就完美解决这个问题。举个简单例子
T poco = "http://api.foo.com".GetJsonAsync<T>();
就是这么简单,直接返回泛型对象;
安装
通过nuget就可以安装,或者去官网下载后引用即可;
最佳实践
官网例子已经很全面了,懒得翻就看我的
Post请求
var response = "www.baidu.com"
.WithHeader("content-type", "application/x-www-form-urlencoded") //可以继续增加Header参数
.PostUrlEncodedAsync(new { name = "i am name"}) //post 开头就是post请求,反之亦然
//x-www-form-urlencoded 需要使用 PostUrlEncodedAsync
//form-data 需要使用 PostMultipartAsync
.ReceiveJson<tt2>(); //post请求接受
response.Wait(); //异步等待结果返回
Get请求
var response2 = "www.baidu.com"
点击查看代码
var response2 = "www.baidu.com"
.SetQueryParams(new { name="i am name"}) //QueryString参数
.WithHeader("Authorization", "Bearer dsafadsfadsfasdfasdf==") //Bearer 认证
.GetJsonAsync<tt3>(); //get请求返回
response2.Wait();
.SetQueryParams(new { name="i am name"}) //QueryString参数
.WithHeader("Authorization", "Bearer dsafadsfadsfasdfasdf==") //Bearer 认证
.GetJsonAsync<tt3>(); //get请求返回
response2.Wait();
特殊自定义请求
public class MyCustomHttpClientFactory : DefaultHttpClientFactory
{
public override HttpMessageHandler CreateMessageHandler()
{
var client = base.CreateMessageHandler() as HttpClientHandler;
client.Credentials = CredentialCache.DefaultNetworkCredentials;
client.Proxy = new System.Net.WebProxy(); //new 一个新的代理
client.Proxy.Credentials = CredentialCache.DefaultNetworkCredentials; //使用默认的代理
return client;
}
}
var response333 = new FlurlClient()
.Configure(x =>
{
//配置特殊 HttpClient ,放置抛 407 代理错误
x.HttpClientFactory = new MyCustomHttpClientFactory();
}).Request("http://www.baidu.com", "?name=i am name")
//Request比较特殊,第一个参数必须Uri.IsValid()通过
//包含协议,域名
.WithBasicAuth("account", "password") // basic auth认证
.GetJsonAsync<tt4>();
response333.Wait();
Flurl 组件使用的更多相关文章
- 在 .NET 中使用 Flurl 高效处理Http请求
简介 官方介绍,Flurl是一个现代的,流利的,支持异步的,可测试的,可移植的,URL增强和Http客户端组件. Url构建 现在有一个登录的接口,地址如下: https://www.some-api ...
- 转载使用Flurl制作可复用的分页组件
使用Flurl制作可复用的分页组件 使用ASP.NET MVC查询时,一直使用MvcPaging组件,虽然需要自定义MvcPaging.Pager才能达到我想要的效果,但在没有较好的URL库时,还是这 ...
- ASP.NET:使用Flurl制作可复用的分页组件
使用ASP.NET MVC查询时,一直使用MvcPaging组件,虽然需要自定义MvcPaging.Pager才能达到我想要的效果,但在没有较好的URL库时,还是这么用.分页的逻辑本来就不复杂,更重要 ...
- ExtJS 4.2 评分组件
上一文章是扩展ExtJS自带的Date组件.在这里将创建一个评分组件. 目录 1. 介绍 2. 示例 3. 资源下载 1. 介绍 代码参考的是 Sencha Touch 2上的一个RatingStar ...
- react组件的生命周期
写在前面: 阅读了多遍文章之后,自己总结了一个.一遍加强记忆,和日后回顾. 一.实例化(初始化) var Button = React.createClass({ getInitialState: f ...
- react-router 组件式配置与对象式配置小区别
1. react-router 对象式配置 和 组件式配置 组件式配置(Redirect) ----对应---- 对象式配置(onEnter钩子) IndexRedirect -----对应-- ...
- Angular2入门系列教程3-多个组件,主从关系
上一篇 Angular2项目初体验-编写自己的第一个组件 好了,前面简单介绍了Angular2的基本开发,并且写了一个非常简单的组件,这篇文章我们将要学会编写多个组件并且有主从关系 现在,假设我们要做 ...
- Angular2入门系列教程2-项目初体验-编写自己的第一个组件
上一篇 使用Angular-cli搭建Angular2开发环境 Angular2采用组件的编写模式,或者说,Angular2必须使用组件编写,没有组件,你甚至不能将Angular2项目启动起来 紧接着 ...
- .NET Core 首例 Office 开源跨平台组件(NPOI Core)
前言 最近项目中,需要使用到 Excel 导出,找了一圈发现没有适用于 .NET Core的,不依赖Office和操作系统限制的 Office 组件,于是萌生了把 NPOI 适配并移植到 .NET C ...
- .NetCore中的日志(1)日志组件解析
.NetCore中的日志(1)日志组件解析 0x00 问题的产生 日志记录功能在开发中很常用,可以记录程序运行的细节,也可以记录用户的行为.在之前开发时我一般都是用自己写的小工具来记录日志,输出目标包 ...
随机推荐
- TIM—高级定时器输出PWM
高级定时器输出PWM 主频144M,生成一个频率为1K,占空比为30%的PWM详细代码参考EVT例程PWM_Output 重要参数说明 TIM_TimeBaseInitStructure.TIM_Pe ...
- ubuntu下yaml-cpp安装与使用
安装 从GitHub上下载源码编译安装:git clone https://github.com/jbeder/yaml-cpp.git: 进入源码目录并创建一个 build 目录:cd yaml-c ...
- 12月13日内容总结——路由分发、名称空间、虚拟环境、视图层三板斧、JsonResponse对象、request对象获取文件、视图层FBV与CBV的源码剖析、模版层简介
目录 一.路由分发 二.名称空间 方式1:名称空间 方式2:别名不冲突即可 三.虚拟环境 pycharm创建虚拟环境 命令行的方式创建虚拟环境: 创建虚拟环境的命令 激活与关闭虚拟环境 四.视图层之必 ...
- LeetCode_804. 唯一摩尔斯密码词
题目 难度:简单 原文:https://leetcode-cn.com/problems/unique-morse-code-words/ 题目 国际摩尔斯密码定义一种标准编码方式,将每个字母对应于一 ...
- LeetCode_周赛_330
6337. 统计桌面上的不同数字 代码 后面出现的数字都是小于 n 的. n = 1 时,答案是 1. n > 1时: 第一天,n % (n - 1) == 1,n - 1会被加入 第二天,(n ...
- SpringBoot 整合Thymeleaf 、Thymeleaf常用标签
springboot 整合Thymeleaf Thymeleaf是目前流行的视图层的技术,Spring boot 官方推荐的使用Thymeleaf 什么是Thymeleaf? Thymeleaf是一个 ...
- JavaScript字符串的常用方法
一.操作方法 我们也可将字符串常用的操作方法归纳为增.删.改.查,需要知道字符串的特点是一旦创建了,就不可变 增 这里增的意思并不是说直接增添内容,而是创建字符串的一个副本,再进行操作 除了常用+以及 ...
- JZOJ 3448.公路维护
\(\text{Problem}\) 1.询问区间最小值是否大于 \(0\) 2.区间加(可正可负) 3.区间取 \(\max\) 如果某个数经过操作后小于等于 \(0\),以后的操作就不会再影响这个 ...
- C语言多维数组的实现与操作
常量和所需的头文件 #include<stdio.h> #include<stdarg.h> #include<stdlib.h> #define MAX_ARRA ...
- unity 音频曲线
jp--------------- https://techblog.kayac.com/dynamic-waveform-generation-without-audio-clip https:// ...