Как сохранить значения авторизации ответа API в MVC Core 3? - PullRequest
0 голосов
/ 22 апреля 2020

Я пытаюсь установить sh соединение с сервисным уровнем SAP Business One, но при попытке сделать запрос он сообщает, что у меня нет авторизации. Когда вы выступаете в «Почтальоне», все идет хорошо.

Вход в систему POSTMAN:

enter image description here

Здесь на втором изображении видно, как cook ie генерируется автоматически, что, как мне кажется, мне не хватает в моем MVC Core приложении.

Получить POSTMAN:

enter image description here

При попытке сделать это в моем проекте, войдите в систему, если он работает правильно, и я получаю тот же ответ

Вход в систему успешен:

enter image description here

Но когда я выполняю GET для получения другой информации, я получаю следующую ошибку:

Ошибка GET:

enter image description here

Это мой полный код:

enter image description here

1 Ответ

0 голосов
/ 22 апреля 2020

Небольшая заметка на будущее : пожалуйста, оставьте свой код в реальных блоках кода, а не в виде изображений.

Вы можете использовать HttpClientHandler для управления файлами cookie для вас. Это означает, что когда вы делаете запрос, и в ответе есть несколько Set-Cook ie заголовков , HttpClientHandler автоматически включит эти куки в ваш следующий запрос:

var cookieContainer = new CookieContainer();
using (var handler = new HttpClientHandler { CookieContainer = cookieContainer })
using (var client = new HttpClient(handler))
{
    var jsonString = @"{""CompanyDB"":""MICOMPANY""}";
    var postData = new StringContent(jsonString, Encoding.UTF8, "application/json");

    var loginResponse = await client.PostAsync("https://some-site.com/loginPath", postData);

    // ...

    // This GET request will automatically include the cookies you received above
    var dataResponse = await client.GetAsync("https://some-site.com/give/me/data");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...