C # GetAsync не будет работать с Django Rest Framework - PullRequest
0 голосов
/ 18 февраля 2019

Это функция в моем 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>>();
        }
    }

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

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

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

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

1 Ответ

0 голосов
/ 19 февраля 2019

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

...