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内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 利用C#编写Linux守护进程实例代码

    利用C#编写Linux守护进程实例代码

    如今的编程是一场程序员和上帝的竞赛,程序员要开发出更大更好、傻瓜都会用到软件,下面这篇文章主要给大家介绍了关于利用C#编写Linux守护进程的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下。
    2018-01-01
  • C#中调用Windows API的技术要点说明

    C#中调用Windows API的技术要点说明

    本篇文章主要是对C#中调用Windows API的技术要点进行了详细的介绍,需要的朋友可以过来参考下,希望对大家有所帮助
    2014-01-01
  • C#文件上传与下载的实现方法

    C#文件上传与下载的实现方法

    这篇文章主要为大家详细介绍了C#文件上传与下载的实现方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-08-08
  • Unity 数据存储和读取的方法汇总

    Unity 数据存储和读取的方法汇总

    这篇文章主要介绍了Unity 数据存储和读取的方法,本文通过四种方法在 Unity 中实现数据存储和读取方法的案例内容,结合示例代码给大家讲解的非常详细,需要的朋友可以参考下
    2022-10-10
  • c#获取季度时间实例代码(季度的第一天)

    c#获取季度时间实例代码(季度的第一天)

    这篇文章主要介绍了c#获取季度时间:季度的第一天、季度的最后一天等功能,大家参考使用吧
    2013-12-12
  • C#抽象类和接口的区别分析

    C#抽象类和接口的区别分析

    这篇文章主要介绍了C#抽象类和接口的区别,详细的分析了抽象类与接口的概念与特性,并对二者作出比对说明,需要的朋友可以参考下
    2014-10-10
  • C# winform程序读取文本中的值实例讲解

    C# winform程序读取文本中的值实例讲解

    在本篇文章中小编给大家分享了关于C# winform程序读取文本中的值的相关知识点,有兴趣的朋友们学习下。
    2019-06-06
  • C#遍历集合与移除元素的方法

    C#遍历集合与移除元素的方法

    这篇文章主要介绍了C#遍历集合与移除元素的方法,结合实例形式分析了C#使用for循环遍历集合以及add与Remove方法进行元素添加与移除的使用技巧,需要的朋友可以参考下
    2016-06-06
  • Unity3D Ui利用shader添加效果

    Unity3D Ui利用shader添加效果

    这篇文章主要为大家详细介绍了Unity3D Ui利用shader添加效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-02-02
  • C# Environment.CurrentDirectory 静态属性的实现

    C# Environment.CurrentDirectory 静态属性的实现

    本文主要介绍了C# Environment.CurrentDirectory 静态属性的实现,它返回当前应用程序的工作目录路径,具有一定的参考价值,感兴趣的可以了解一下
    2024-02-02

最新评论