.net 如何使用头中的API密钥使用第三方API

n9vozmp4  于 2023-04-08  发布在  .NET
关注(0)|答案(1)|浏览(138)

我一直在寻找一个好方法来实现API键内的“HttpGet”调用第三方API的头部。我检索数据使用 Postman ,但还没有成功地使用。net做调用。
我一直试图添加client.DefaultRequestHeaders.Add("ApiKey", "testApiToken");到头,但得到授权拒绝作为反馈。
所提供的数据是模拟数据,但具有相同的结构。
是否有特殊的方法将API密钥添加到标头中?
API密钥如下所示:

Key: 3tc97512-198y-12bt-847c-fdd50d583123
value: testApiToken

我尝试实现的代码:

namespace API.Controllers.GetUsersFromThirdPartyAPI
{
    [ApiController]
    [Route("[controller]")]
    public class GetAllUsers : BaseApiController
    {
        private readonly DataContext _context;

        public GetAllUsers(DataContext context)
        {
            _context = context;
        }

        [HttpGet]
        public async Task<IActionResult> Get()
        {
            var client = new HttpClient();
            client.BaseAddress = new Uri("https://gate-api.hemsa.se:4004");
            client.DefaultRequestHeaders.Add("ApiKey", "testApiToken");
            client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

            var response = await client.GetAsync("/api/3tc97512-198y-12bt-847c-fdd50d583123/hms/hemsaRoster/v2p2/users");

            return Ok(response);
        }
    }
}
oxcyiej7

oxcyiej71#

您需要提供正确的头名称,即(基于注解)-3tc97512-198y-12bt-847c-fdd50d583123

client.DefaultRequestHeaders.Add("3tc97512-198y-12bt-847c-fdd50d583123", "testApiToken");

相关问题