Я пытался написать пост API-вызов в службу анализа тона watson в C #.Кажется, что способ аутентификации пользователя был недавно изменен с имени пользователя и пароля на ключ API.
Я пытался передать apikey через заголовок «Authorization» или через заголовок «apikey». В обоих случаях я получил ошибку 401 Unauthorized. Другой используемый мной заголовок - наборы Content-Typeв application / json ..
Эти вызовы не работают ни в проекте .net, ни в почтальоне.
Как я могу отправить запрос API с использованием C #, как в оболочке я передаю ключ APIи какие заголовки мне следует использовать?
Это код, который я пробовал (этот код возвращает ошибку внутренней ошибки сервера 500, в то время как тесты, которые я делал с почтальоном, возвращают 401 Unauthorized):
HttpClient client = new HttpClient();
string baseURL;
string apikey= "****************";
baseURL = "https://gateway-lon.watsonplatform.net/tone-analyzer/api/v3/tone?version=2017-09-21";
string postData = "{\"text\": \"" + "hi hello" + "\"}";
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("apikey", apikey);
var response = client.PostAsync(baseURL, new StringContent(postData, Encoding.UTF8, "application/json")).Result;
Console.WriteLine(response);
Ошибка, которую я получаю:
StatusCode: 500, ReasonPhrase: 'Internal Server Error', Version: 1.1, Content: System.Net.Http.StreamContent, Headers:
{
Mime-Version: 1.0
Connection: close
Date: Sun, 17 Feb 2019 11:37:53 GMT
Server: AkamaiGHost
Content-Length: 177
Content-Type: text/html
Expires: Sun, 17 Feb 2019 11:37:53 GMT
}