Почему я получаю 403 при вызове GetAsync из api.stackexchange?

Я пишу демонстрационное приложение для себя, чтобы учиться, и внезапно я начал получать 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;
}
Дарья
Вопрос задан7 апреля 2024 г.

1 Ответ

2
Сергей
Ответ получен14 сентября 2024 г.

Ваш ответ

Загрузить файл.