42 lines
1.4 KiB
C#
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);
|
|
}
|
|
}
|