C#使用FluentHttpClient实现请求WebApi

 更新时间:2023年12月19日 08:47:38   作者:rjcql  
FluentHttpClient 是一个REST API 异步调用 HTTP 客户端,调用过程非常便捷,下面我们就来学习一下C#如何使用FluentHttpClient实现请求WebApi吧

写在前面

FluentHttpClient 是一个REST API 异步调用 HTTP 客户端,调用过程非常便捷,采用流式编程,可以将所有请求所需的参数一次性发送,并直接获取序列化后的结果。

老规矩从NuGet上安装该类库:

这边一定要认准是 Pathoschild 这家,千万不要下错,因为有类似关键词的类库。

代码实现

 
using Pathoschild.Http.Client;
using System;
 
class Program
{
    static async Task Main(string[] args)
    {
        var client = new FluentClient("http://localhost:5000/");
        var items = await client.GetAsync("WeatherForecast")
            .WithHeader("User-Agent", "Tester")
            .WithArguments(new { page = 1, page_size = 10, target = "Day" })
            .As<List<WeatherForecast>>();
        //var items = await client.PostAsync("WeatherForecast").As<List<WeatherForecast>>();
        foreach (var item in items)
        {
            await Console.Out.WriteLineAsync($"Date: {item.Date.ToShortDateString()}, Summary: {item.Summary}");
        }
 
        Console.ReadLine();
    }
 
    public class WeatherForecast
    {
        public DateOnly Date { get; set; }
 
        public int TemperatureC { get; set; }
 
        public int TemperatureF { get; set; }
 
        public string? Summary { get; set; }
    }
}

WebApi这边直接使用了官方的.NetCore WebApi模板项目,运行框架是.Net8.0,现在已经集成了Swagger,超级赞的,运行起来可以直接看到这样的界面。

对应的控制器代码如下:

    [ApiController]
    [Route("[controller]")]
    public class WeatherForecastController : ControllerBase
    {
        private static readonly string[] Summaries = new[]
        {
            "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
        };
 
        private readonly ILogger<WeatherForecastController> _logger;
 
        public WeatherForecastController(ILogger<WeatherForecastController> logger)
        {
            _logger = logger;
        }
 
        [HttpGet(Name = "GetWeatherForecast")]
        [HttpPost(Name = "GetWeatherForecast")]
        public IEnumerable<WeatherForecast> Get()
        {
            return Enumerable.Range(1, 5).Select(index => new WeatherForecast
            {
                Date = DateOnly.FromDateTime(DateTime.Now.AddDays(index)),
                TemperatureC = Random.Shared.Next(-20, 55),
                Summary = Summaries[Random.Shared.Next(Summaries.Length)]
            })
            .ToArray();
        }
    }

运行起来:

调用结果

到此这篇关于C#使用FluentHttpClient实现请求WebApi的文章就介绍到这了,更多相关C# FluentHttpClient请求WebApi内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 90分钟实现一门编程语言(极简解释器教程)

    90分钟实现一门编程语言(极简解释器教程)

    本文介绍了如何使用 C# 实现一个简化 Scheme——iScheme 及其解释器,需要的朋友可以参考下
    2016-12-12
  • ASP.NET C#中Application的用法教程

    ASP.NET C#中Application的用法教程

    这篇文章主要给大家介绍了关于ASP.NET C#中Application的用法,在介绍Application的用法之前,先给大家介绍了Session的用法供大家参考学习,文中介绍的非常详细,需要的朋友们下面跟着小编一起来学习学习吧。
    2017-05-05
  • 提权函数之RtlAdjustPrivilege()使用说明

    提权函数之RtlAdjustPrivilege()使用说明

    RtlAdjustPrivilege() 这玩意是在 NTDLL.DLL 里的一个不为人知的函数,MS没有公开,原因就是这玩意实在是太NB了,以至于不需要任何其他函数的帮助,仅凭这一个函数就可以获得进程ACL的任意权限!
    2011-06-06
  • C#中的LINQ to Objects详解(2)

    C#中的LINQ to Objects详解(2)

    本文详细讲解了C#中的LINQ to Objects,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • C#从文件或标准输入设备读取指定行的方法

    C#从文件或标准输入设备读取指定行的方法

    这篇文章主要介绍了C#从文件或标准输入设备读取指定行的方法,涉及C#文件及IO操作的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-04-04
  • C#遍历子目录的方法

    C#遍历子目录的方法

    这篇文章主要介绍了C#遍历子目录的方法,涉及C#针对目录操作的相关技巧,需要的朋友可以参考下
    2015-04-04
  • 利用C#实现在Word中更改字体颜色

    利用C#实现在Word中更改字体颜色

    在日常工作中,我们有时会需要修改字体的颜色来突出文本重点,让读者更容易抓住文章要点。在今天这篇文章中,我将为大家介绍如何以编程方式,在Word更改字体颜色,感兴趣的可以了解一下
    2023-02-02
  • C#基于COM方式读取Excel表格的方法

    C#基于COM方式读取Excel表格的方法

    这篇文章主要介绍了C#基于COM方式读取Excel表格的方法,涉及C# COM组件的调用与Excel表格的使用技巧,需要的朋友可以参考下
    2016-07-07
  • SuperSocket入门--Telnet服务器和客户端请求处理

    SuperSocket入门--Telnet服务器和客户端请求处理

    本文的控制台项目是根据SuperSocket官方Telnet示例代码进行调试的,官方示例代码:Telnet示例。下面跟着小编一起来看下吧
    2017-01-01
  • C#简单读取、改变文件的创建、修改及访问时间的方法

    C#简单读取、改变文件的创建、修改及访问时间的方法

    这篇文章主要介绍了C#简单读取、改变文件的创建、修改及访问时间的方法,涉及C#文件类SetCreationTime、SetLastWriteTime及SetLastAccessTime的相关使用技巧,需要的朋友可以参考下
    2015-07-07

最新评论