C# GetAsync не будет работать с Django Rest Framework

Это функция в моем HomeController.cs:

async Task<Dictionary<Object, Object>> GetSiteWithID(int ID)
    {
        using (HttpClient client = new HttpClient())
        {
            client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Token", "94afa9a8b0804e65a53d335dec230478f69b39c5");
            HttpResponseMessage responseMessage = await client.GetAsync("http://localhost:8000/site/1");
            responseMessage.EnsureSuccessStatusCode();
            return await responseMessage.Content.ReadAsAsync<Dictionary<Object, Object>>();
        }
    }

Проблема в том, что он отправляет заголовок как "Авторизация: токен 94afa9a8b0804e65a53d335dec230478f69b39c5", но Django Rest Framework его не получает.

Все, что мне нужно отправить, потому что, если я тестирую с Почтальоном, это работает, но это также отправляет другие вещи, которые я не знаю, если это необходимо.

ОБНОВЛЕНИЕ: Да, я использую localhost:8000 - Порт по умолчанию для сервера dev в django. Я перееду на производственный сервер после. Ответ, который я получаю от сервера django: "Детали аутентификации не были предоставлены". Код состояния 401 - Не авторизован.

ОБНОВЛЕНИЕ: Попробовал с реакции и после реализации списка белых списков CORS в Django, запрос работал! Когда я добавил локальный сервер.NET в белый список, Джанго все еще говорил, что "детали аутентификации не предоставлены". Так что-то в.Net Core 2.2 не отправляет заголовки!

1 ответ

Это решено Очевидно сервер Django возвращал 301 из-за отсутствия косой черты, и мой код не принимал это во внимание. Если я проверю URL без косой черты в почтальоне, он обрабатывает 301 и повторно отправляет запрос с косой чертой в то, что я могу собрать. Помещение завершающей косой черты в URL обходит этот ответ 301.

Другие вопросы по тегам