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#实现工厂方法模式

    C#实现工厂方法模式

    这篇文章介绍了C#实现工厂模式的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-07-07
  • c# Async streams的使用解析

    c# Async streams的使用解析

    这篇文章主要介绍了c# Async streams的使用解析,帮助大家更好的理解和学习使用c#,感兴趣的朋友可以了解下
    2021-04-04
  • C#图片上传效果实例分析

    C#图片上传效果实例分析

    这篇文章主要介绍了C#图片上传效果实现方法,可实现图片上传效果预览功能,需要的朋友可以参考下
    2015-06-06
  • C#虚函数用法实例分析

    C#虚函数用法实例分析

    这篇文章主要介绍了C#虚函数用法,实例分析了C#中虚函数的功能与基本使用技巧,需要的朋友可以参考下
    2015-07-07
  • Unity3D更改默认的脚本编辑器

    Unity3D更改默认的脚本编辑器

    这篇文章简要的说明了如何去修改Unity默认的脚本编辑器,大大提升了灵活性和便捷性,文本有详细的图文介绍,能让你观看的更加清晰,希望对你有所帮助
    2021-06-06
  • C#类继承中构造函数的执行序列示例详解

    C#类继承中构造函数的执行序列示例详解

    这篇文章主要给大家介绍了关于C#类继承中构造函数的执行序列的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-09-09
  • C# PaddleDetection yolo实现印章检测

    C# PaddleDetection yolo实现印章检测

    这篇文章主要为大家详细介绍了C#如何结合PaddleDetection yolo实现印章检测,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-11-11
  • C#键值对容器的介绍

    C#键值对容器的介绍

    C#键值对容器的介绍,需要的朋友可以参考一下
    2013-05-05
  • C#实现的中国移动官网手机号码采集器

    C#实现的中国移动官网手机号码采集器

    这篇文章主要介绍了C#实现的中国移动官网手机号码采集器,本文先是采集号码入库,同时给出了筛选各类靓号的SQL语句,需要的朋友可以参考下
    2014-10-10
  • C#实现简易计算器小功能

    C#实现简易计算器小功能

    这篇文章主要为大家详细介绍了C#实现简易计算器小功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01

最新评论