API URL Работает в браузере, но не в REST.Он дает «Код состояния ответа не указывает на успех: 404 (не найден)». - PullRequest
0 голосов
/ 24 апреля 2019

API-запрос работает в браузере и возвращает JSON. Но когда я называю это в веб-интерфейсе, он выдает «Код состояния ответа не указывает на успех: 404 (не найден)». ошибка. Другие запросы на получение работают нормально, кроме этого.

string url = "https://..../search.json?query=abc:123";

using (HttpClient client = new HttpClient())
{                 
    client.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)");
    client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(byteArray));

    var content = await client.GetStringAsync(url);
    return JsonConvert.DeserializeObject<Object>(content);
}

Ответы [ 2 ]

0 голосов
/ 24 апреля 2019

Попробуйте добавить заголовок «Accept-Language» согласно этому решению, опубликованному в другой ветке Stackoverflow

0 голосов
/ 24 апреля 2019

Установить url переменную и удалить BaseAddress.Когда вы выполняете GetStringAsync(url), HttpClient объединяет baseAddress и url, передаваемые в параметре GetStringAsync

string url = ""; //Set url here

using (HttpClient client = new HttpClient())
{                
    client.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)");
    client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(byteArray));

    var content = await client.GetStringAsync(url);
    return JsonConvert.DeserializeObject<Object>(content);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...