Azure 的新手,我在内部地址http://internal-server:182/api/policies上有一个内部 Web API 。我已经建立了一个混合连接 internal-service.servicebus.windows.net。这是连接和工作的。
我的斗争是让 C# 代码能够连接和检索数据。几天后,我查看了各种文章、视频等,所有这些似乎都比我想要做的更先进,即调用 Web API 并读取 JSON。我试图简化代码但收到错误:
401 MalformedToken: Invalid authorization header: The request is missing WRAP authorization credentials.
目前我有以下代码:
using (var client = new HttpClient())
{
var url = "http://internal-service.servicebus.windows.net";
var tp = TokenProvider.CreateSharedAccessSignatureTokenProvider("RootManageSharedAccessKey", "<key goes here>");
var token = tp.GetWebTokenAsync(url, string.Empty, true, TimeSpan.FromHours(1))
.GetAwaiter()
.GetResult();
client.BaseAddress = new Uri(url);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("ServiceBusAuthorization", token);
var response = client.GetAsync("/api/policies").Result;
string res = "";
using (HttpContent content = response.Content)
{
// ... Read the string.
Task<string> result = content.ReadAsStringAsync();
res = result.Result;
Label1.Text = res;
}
}
任何帮助或方向将不胜感激?此代码运行后,Web 应用程序将作为 Azure Web 应用程序发布。