Использование гибридного подключения Azure для подключения к внутреннему веб-API
Я новичок в Azure, и у меня есть внутренний веб-API по внутреннему адресу http://internal-server:182/api/policies. Я установил гибридное соединение 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;
}
}
Любая помощь или направление будет высоко ценится? Когда этот код заработает, веб-приложение будет опубликовано как веб-приложение Azure.
1 ответ
Кажется, вы не отправляете правильный заголовок.
Первое предложение: перехватить вызов с помощью прокси-сервера, например, fiddler, для этого добавить конфигурацию прокси-сервера к вашему вызову на локальный порт 8888, после этого вы можете попробовать выполнить какой-либо запрос и увидеть необработанный http, который вы отправляете на сервер, вы также можете изменить пока он не заработает, измените ваш код, пока он не отправит тот же необработанный http.
Вы можете найти больше информации об этом здесь:
Microsoft Azure CreateQueue с использованием Simple REST Client
https://github.com/ytechie/event-hubs-sas-generator