• .Net Core 使用IHttpClientFactory请求


    1. HttpClientFactory 创建的HttpClient,也即是HttpClientHandler,只是这些个HttpClient被放到了“池子”中,工厂每次在create的时候会自动判断是新建还是复用。(默认生命周期为2min,默认的生命周期可以修改)

    第一种使用方式

    1. Startup.cs中进行注册

    //注册http请求服务 services.AddHttpClient();

    1. Httphelper请求辅助类中使用
    /// <summary>
    /// 注入http请求
    /// </summary>
    private readonly IHttpClientFactory httpClientFactory;
    public HttpHelp(IHttpClientFactory _httpClientFactory)
        {
            httpClientFactory = _httpClientFactory;
        }
        // <summary>
        // Get请求数据
        // <para>最终以url参数的方式提交</para>
        // </summary>
        // <param name="parameters">参数字典,可为空</param>
        // <param name="requestUri">例如/api/Files/UploadFile</param>
        // <returns></returns>
    public async Task < string > Get(Dictionary < string, string > parameters, string requestUri, string token)
    {
        //从工厂获取请求对象
        var client = httpClientFactory.CreateClient();
        //添加请求头
        if(!string.IsNullOrWhiteSpace(token))
        {
            client.DefaultRequestHeaders.Add("Authorization", "Bearer " + token);
        }
        client.DefaultRequestHeaders.Add("Content-Type", "application/json; charset=utf-8");
        //拼接地址
        if(parameters != null)
        {
            var strParam = string.Join("&", parameters.Select(o => o.Key + "=" + o.Value));
            requestUri = string.Concat(requestUri, '?', strParam);
        }
        client.BaseAddress = new Uri(requestUri);
        return client.GetStringAsync(requestUri).Result;
    }
    1. Startup.cs中进行注册,这个注册可以存在多个。
    services.AddHttpClient<classHttp>();
    //注册之后,使用依赖注入的方式进行注入,进行使用。

    源文:https://blog.csdn.net/WuLex/article/details/126389568

  • 相关阅读:
    .net技巧推荐
    ASPNETPager常用属性
    带有like的存储过程
    Jquery选择器
    关于出现too many open files异常
    将ReadWriteLock应用于缓存设计
    读CopyOnWriteArrayList有感
    HttpClient容易忽视的细节——连接关闭
    windows下如何用java命令运行jar包?
    再谈重入锁ReentrantLock
  • 原文地址:https://www.cnblogs.com/shy1766IT/p/16722139.html
Copyright © 2020-2023  润新知