Консольное приложение ядра .net, вызывающее PHP rest API с базовой аутентификацией - PullRequest
0 голосов
/ 23 декабря 2018

Я не могу получить данные из php rest api из приложения консоли ядра .net (вызов работает нормально из POSTMAN).Я использую приведенный ниже код для базовой аутентификации и, похоже, он перенаправляет на https://www.thesite.org/login для HttpClient.

Не уверен, что мне не хватает.

static async Task<RootObject> GetOrderDataAsync()
    {
        HttpClient client = new HttpClient();
        RootObject result = null;
        var byteArray = Encoding.ASCII.GetBytes("username:password");
        client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(byteArray));

        client.BaseAddress = new Uri("https://www.thesite.org/");
        client.DefaultRequestHeaders.Accept.Clear();
        client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
        HttpResponseMessage response = await client.GetAsync("orders/processing");
        if (response.IsSuccessStatusCode)
        {
            result = await response.Content.ReadAsAsync<RootObject>();

        }
        return result;
    }

1 Ответ

0 голосов
/ 23 декабря 2018

Я думаю, что когда вы используете AuthenticationHeaderValue, вам не нужно явно конвертировать в строку Base64.Вы пробовали:

client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", "username:password");
...