CloudGamingAdmin/admin-server/CloudGaming.Core.AgileConfig/BasicAuthHttpClientHandler.cs
2024-11-15 02:58:48 +08:00

42 lines
1.4 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http.Headers;
using System.Text;
using System.Threading.Tasks;
namespace CloudGaming.Core.AgileConfig;
/// <summary>
///
/// </summary>
public class BasicAuthHttpClientHandler : DelegatingHandler
{
private readonly string _userName;
private readonly string _password;
/// <summary>
/// 初始化 BasicAuthHttpClientHandler
/// </summary>
/// <param name="userName">用户名</param>
/// <param name="password">密码</param>
public BasicAuthHttpClientHandler(string userName, string password)
{
_userName = userName;
_password = password;
InnerHandler = new HttpClientHandler(); // 确保内部处理程序已分配
}
protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
{
// 设置请求的 Content-Type 为 application/json
//request.Content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
//request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", _token);
// 生成 Basic 认证头部信息
var authValue = Convert.ToBase64String(Encoding.UTF8.GetBytes($"{_userName}:{_password}"));
request.Headers.Authorization = new AuthenticationHeaderValue("Basic", authValue);
return await base.SendAsync(request, cancellationToken);
}
}