Как правильно добавить HttpRequestHeaders с помощью библиотеки system.net.http - PullRequest
0 голосов
/ 11 декабря 2018

Я создал HttpRequestMessage с заголовком, используя windows.web.http; библиотека:

var request = base.CreateHttpRequestMessage();
        request.Headers.Add("SESSION", SessionId);
        return request;

и после отправки SendRequestAsync ();Я могу получить ответ успешно.

Но в моем случае мне нужно использовать библиотеку system.net.http; , с такими же кодами:

var request = base.CreateHttpRequestMessage();
        request.Headers.Add("SESSION", SessionId);
        return request;

но когда я звоню SendAsync ();Я получаю неавторизованный ответ.Кто-нибудь знает, что вызвало проблему?

var source = new CancellationTokenSource(timeout)
var response = await _client.SendAsync(request, source.Token)
                    .ConfigureAwait(false);

ПРИМЕЧАНИЕ: Я попытался вручную установить одинаковые действительные SessionId для обоих, на windows.web.http Хорошо, но на system.net.http он не авторизован.

Как я инициализирую мой HttpClient:

private HttpClientHandler handler;
handler = new HttpClientHandler();

private HttpClient _client;
_client = new HttpClient(handler)

Ссылка: https://docs.microsoft.com/en-us/dotnet/api/system.net.http?view=netframework-4.7.2
https://docs.microsoft.com/en-us/uwp/api/windows.web.http

Формат заголовка запросов:
windows.web.http: enter image description here system.net.http: enter image description here

Спасибо.

Ответы [ 2 ]

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

После отладки запроса с использованием Fiddler я обнаружил, что cookie моего запроса пуст, поэтому я исправил это, добавив cookie вместо добавления заголовка.

CookieContainer.Add(request.RequestUri, new Cookie("SESSION", SessionId));
0 голосов
/ 11 декабря 2018

Одним из недостатков system.net.http является то, что он не кэширует запросы.Сервер, который не отправляет Cache-Control, может быть потенциальной проблемой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...