1 Star 0 Fork 1.5K

codingstudio/BootstrapAdmin

加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
HttpClientExtensions.cs 1.82 KB
一键复制 编辑 原始数据 按行查看 历史
Argo 提交于 2020-11-15 00:07 +08:00 . refactor: client 项目升级到 net5.0
using Bootstrap.Client.DataAccess;
using Bootstrap.Client.Tasks;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using System;
using System.Linq;
using System.Net.Http.Headers;
namespace Microsoft.AspNetCore.Builder
{
/// <summary>
/// HttpClient 扩展类
/// </summary>
internal static class HttpClientExtensions
{
/// <summary>
/// 注入 TraceHttpClient 到容器中
/// </summary>
/// <param name="services"></param>
/// <returns></returns>
public static IServiceCollection AddBootstrapHttpClient(this IServiceCollection services)
{
services.AddHttpClient<TraceHttpClient>((provider, client) =>
{
client.Timeout = TimeSpan.FromSeconds(10);
client.DefaultRequestHeaders.Connection.Add("keep-alive");
// set auth
var context = provider.GetRequiredService<IHttpContextAccessor>();
var cookieValues = context.HttpContext!.Request.Cookies.Select(cookie => $"{cookie.Key}={cookie.Value}");
client.DefaultRequestHeaders.Add("Cookie", cookieValues);
var config = provider.GetRequiredService<IConfiguration>();
var authHost = config.GetBootstrapAdminAuthenticationOptions().AuthHost.TrimEnd(new char[] { '/' });
var url = $"{authHost}/api/Traces";
client.BaseAddress = new Uri(url);
});
services.AddHttpClient<AppVeyorHttpClient>((provider, client) =>
{
client.Timeout = TimeSpan.FromSeconds(5);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
});
return services;
}
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C#
1
https://gitee.com/codingstudio/BootstrapAdmin.git
git@gitee.com:codingstudio/BootstrapAdmin.git
codingstudio
BootstrapAdmin
BootstrapAdmin
master

搜索帮助