У меня есть этот REST API (GET), который отлично работает в браузере и выплевывает JSON. Я даже попробовал тот же API в Excel-VBA, используя XMLHTTP, и он отлично работает.
Но при попытке использовать тот же API в C # я получаю ошибки.
Сначала я получил:
"Базовое соединение было закрыто: произошла непредвиденная ошибка
отправить. "
на линии
HttpResponseMessage response = client.GetAsync(urlParameters).Result;
Затем я установил протокол безопасности на `Tls11 ', и эта ошибка исчезла.
Теперь я собираюсь 404
в Resposne. URL-адрес правильный. Я могу запустить тот же URL-адрес в веб-браузере / VBA, но не в C #.
Любые предложения или помощь?
Извините, не могу поделиться реальным URL-адресом, связанным с его работой.
private const string URL = "https://xxx-production-api.abc.com/api/listings/1790956";
private string urlParameters = "?apiToken=64842d73-9761-456b-86fa-a75a409273ce";
public string Download()
{
HttpClient client = new HttpClient();
client.BaseAddress = new Uri(URL);
client.DefaultRequestHeaders.Accept.Add(
new MediaTypeWithQualityHeaderValue("application/json"));
client.DefaultRequestHeaders.Add("Accept-Language", "en-GB,en-US;q=0.8,en;q=0.6,ru;q=0.4");
// List data response.
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls11;
HttpResponseMessage response = client.GetAsync(urlParameters).Result; // Blocking call!
if (response.IsSuccessStatusCode)
Console.WriteLine("Worked");
else
Console.WriteLine("{0} ({1})", (int)response.StatusCode, response.ReasonPhrase);
}