Я пишу демонстрационное приложение для себя, чтобы учиться, и внезапно я начал получать 403 при выполнении запросов api.stackexchange.com и я терплю неудачу в EnsureSuccessStatusCode(). Я делаю это, чтобы заполнить свою базу данных некоторыми данными тегов. (внедренный клиент просто устанавливает AutomaticDecompression в GZip)
Пытался вручную протестировать запрос, а затем протестировать предыдущие версии приложения, тест в приложении просто возвращает "System.Net.Http.HttpRequestException : Response status code does not indicator successful: 403 (Forbidden)". В то время как ручная запись "https://api.stackexchange.com/2.3/tags?page=1&pagesize=100&order=desc&sort=popular&site=stackoverflow" в браузере возвращает данные правильно.
Я что-то упускаю, чтобы это заработало?
public async Task<List<TagsImport>> ImportStackOverflowTagsAsync()
{
var tagImportsList = new List<TagsImport>();
var httpClient = _httpClient.GetClient();
httpClient.BaseAddress = new Uri("https://api.stackexchange.com/");
httpClient.DefaultRequestHeaders.Accept.Clear();
for (var i = 1; i <= 10; i++)
{
var response = await httpClient.GetAsync($"2.3/tags?page={i}&pagesize=100&order=desc&sort=popular&site=stackoverflow");
response.EnsureSuccessStatusCode();
var responseBody = await response.Content.ReadAsStringAsync();
var tags = JsonSerializer.Deserialize<TagsImport>(responseBody);
tagImportsList.Add(tags);
}
return tagImportsList;
}