gpt4 book ai didi

azure - 身份验证信息未以正确的格式给出。检查 Azure 费率卡 API 中授权 header 的值

转载 作者:行者123 更新时间:2023-12-02 07:27:22 24 4
gpt4 key购买 nike

为了获取价目表,我使用下面的 API。

https://management.azure.com/subscriptions/{subscription-id}/providers/Microsoft.Commerce/RateCard?api-version=2015-06-01-preview&$filter=OfferDurableId+eq+{offer-id}+and+Currency+eq+'USD'+and+Locale+eq+'en-US'+and+RegionInfo+eq+'IN'

我在请求中传递了值为“Bearer eyioe...”的授权 header 。它早些时候工作过,但最近收到以下响应

<?xml version="1.0" encoding="utf-8"?>
<Error>
<Code>InvalidAuthenticationInfo</Code>
<Message>Authentication information is not given in the correct format. Check the value of Authorization header.
RequestId:5dc4ea49-b01e-00f9-6760-dcfb83000000
Time:2018-04-25T06:42:45.8106146Z</Message>
</Error>

最佳答案

情况可能是 RateCard API 正在发回 302 重定向。在这个问题出现期间,这一点在新版本中发生了变化。

解决此问题的推荐方法是:

  1. 获取不记名 token ,
  2. 向 ARM 发出请求,并将身份验证 header 设置为不记名 token (这与之前相同)
  3. RateCard 将返回 302 状态代码,该代码代表重定向并包含第二个 URL,可从中获取价目表(这是新的)。
  4. 必须向第二个网址发出第二个请求。请注意,许多 http 库会自动遵循重定向并为您发出第二个请求。发出第二个请求时,需要删除包含不记名 token 的授权 header ,如果不删除,您将看到错误。如何在代码中实际实现这一点取决于您使用的 http 客户端。对于C#,代码如下:
<小时/>
const string subId = "Subscription Id here";
const string token = "Auth Token here.";

const string offer = "MS-AZR-0003P";
const string currency = "USD";
const string locale = "en-US";
const string region = "US";

using (var rateCardClient = new HttpClient() { BaseAddress = new Uri("https://management.azure.com/") })
{
rateCardClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("bearer", token);
var response = await rateCardClient.GetAsync($"subscriptions/{subId}/providers/Microsoft.Commerce/RateCard?api-version=2016-08-31-preview&$filter=OfferDurableId eq '{offer}' and Currency eq '{currency}' and Locale eq '{locale}' and RegionInfo eq '{region}'");

Console.WriteLine($"StatusCode:{response.StatusCode}");
var ratecard = await response.Content.ReadAsStringAsync().ConfigureAwait(false);

Console.Write(ratecard);
}

请参阅此 Github 问题页面以获取更多信息: https://github.com/MicrosoftDocs/azure-docs/issues/7423

关于azure - 身份验证信息未以正确的格式给出。检查 Azure 费率卡 API 中授权 header 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50016230/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com