В общем, я пытаюсь подключиться к REST API онлайн. Достаточно легко, верно?
Однако я получаю сообщение об ошибке 401 (Unauthorized) всякий раз, когда пытаюсь подключиться. Я использую консольное приложение С#, чтобы проверить это, и я также пытался использовать PUTMAN (приложение Google Chrome для просмотра HTTP-запросов).
Вот ссылка на API, который я использую: https://community.dynatrace.com/community/display/APMSAASDOC/Login+-+REST+API
Я выполняю все перечисленные шаги. Я знаю, что мое имя пользователя и пароль верны (зашел на портал Dynatrace). У кого-нибудь есть идеи, что может быть не так? Вот мой код ниже (я удалил фактическое имя пользователя и пароль по понятным причинам):
static async Task RunAsync()
{
string _user;
string _password;
string _authorizationType;
string _contentType;
string _CredentialsToBase64;
string _url = "https://datafeed-api.dynatrace.com";
_user = "MYUSERNAME";
_password = "MYPASSWORD";
_authorizationType = "basic";
_contentType = "application/json";
_CredentialsToBase64 = System.Convert.ToBase64String(System.Text.ASCIIEncoding.ASCII.GetBytes(_user + ":" + _password));
using (var client = new HttpClient())
{
client.BaseAddress = new Uri(_url);
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue(_contentType));
client.DefaultRequestHeaders.Add("Authorization", _authorizationType + " " + _CredentialsToBase64);
using (HttpResponseMessage httpResponse = await client.GetAsync("publicapi/rest/v1.0/login?user=MYUSERNAME&password=MYPASSWORD HTTP/1.1"))
{
if (httpResponse.IsSuccessStatusCode)
{
Console.WriteLine("Success");
}
else
{
Console.WriteLine(string.Format("Service request failed ({0})", httpResponse.StatusCode));
}
}
}
Authorization
? - person n0rd   schedule 01.07.2015