services.AddSingleton<IContractApi>(m => { return RestService.For<IContractApi>(new HttpClient(new RefitHttpClientHandler(contractOption.Token)) { BaseAddress = new Uri(contractOption.ContractUrl) }); });
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace ContractLifeCycle.Application.common
{
public class RefitHttpClientHandler:HttpClientHandler
{
public string _token;
public RefitHttpClientHandler(string token)
{
_token = token;
}
protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage requestMessage,CancellationToken cancellationToken)
{
var token = requestMessage.Headers.Authorization;
if (token == null && !string.IsNullOrEmpty(_token))
{
requestMessage.Headers.Add("Authorization",_token);
}
return await base.SendAsync(requestMessage,cancellationToken).ConfigureAwait(false);
}
}
}
[Get("/AgentSignAuth/GetProposer/{signAuthId}")]
Task<string> GetProposerByID(string signAuthId, [Header("Authorization")]string authorization, [Header("EmployeeId")]string employeeId);