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;
///
///
///
public class BasicAuthHttpClientHandler : DelegatingHandler
{
private readonly string _userName;
private readonly string _password;
///
/// 初始化 BasicAuthHttpClientHandler
///
/// 用户名
/// 密码
public BasicAuthHttpClientHandler(string userName, string password)
{
_userName = userName;
_password = password;
InnerHandler = new HttpClientHandler(); // 确保内部处理程序已分配
}
protected override async Task 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);
}
}