大家好,这是我第一次使用Web API,希望你们能指点我正确的方向。我该如何在Web API中的请求头中添加API密钥?
我尝试查找谷歌,但不确定是否找到了正确的指南。我找到了以下内容 > 如何在WebApi中添加和获取标题值
我的目标是进行GET请求并在请求头中添加API密钥。
大家好,这是我第一次使用Web API,希望你们能指点我正确的方向。我该如何在Web API中的请求头中添加API密钥?
我尝试查找谷歌,但不确定是否找到了正确的指南。我找到了以下内容 > 如何在WebApi中添加和获取标题值
我的目标是进行GET请求并在请求头中添加API密钥。
在任何API请求的标头中,您始终具有键值对。例如,在此处,您具有以“api_key”为键和以“1234”为值的标头。您可以按照以下方法将其添加到Http请求中。
HttpClient httpClient = new HttpClient();
HttpRequestMessage request = new HttpRequestMessage();
request.RequestUri = new Uri("Your_get_URI");
request.Method = HttpMethod.Get;
request.Headers.Add("api_key", "1234");
HttpResponseMessage response = await httpClient.SendAsync(request);
var responseString = await response.Content.ReadAsStringAsync();
var statusCode = response.StatusCode;
public void ConfigureServices(IServiceCollection services)
{
//Somewhere in the ConfigureSerices method.
services.AddHttpClient("APPINSIGHTS_CLIENT", c =>
{
c.BaseAddress = "<API_URL_HERE>";
c.DefaultRequestHeaders.Add("x-api-key", clientKey));
}
}
HttpClient client = factory.CreateClient("APPINSIGHTS_CLIENT");
试一下这个,希望这对你有用。
using (var httpClient = new HttpClient())
{
httpClient.BaseAddress = new Uri("API URL");
httpClient.DefaultRequestHeaders.Accept.Clear();
httpClient.DefaultRequestHeaders.Authorization = new
System.Net.Http.Headers.AuthenticationHeaderValue("Pass your token value or API key");
HttpResponseMessage response = await httpClient.GetAsync(endpoint);
if (response.StatusCode == HttpStatusCode.OK)
{
string result = await response.Content.ReadAsStringAsync();
if (string.IsNullOrEmpty(result))
return "Success";
else
return result;
}
else if (response.StatusCode == HttpStatusCode.Unauthorized)
{
throw new UnauthorizedAccessException();
}
else
{
throw new Exception(await response.Content.ReadAsStringAsync());
}
}