Я пытаюсь использовать веб-интерфейсы API HttpClient
для публикации сообщения в конечной точке, для которой требуется вход в систему в виде HTTP-файла cookie, который идентифицирует учетную запись (это только то, что #ifdef
исключено из версии выпуска).
Как мне добавить куки в HttpRequestMessage
?
c#
rest
asp.net-mvc-4
asp.net-web-api
Джордж Мауэр
источник
источник
Общепринятый ответ правильный способ сделать это в большинстве случаев. Однако в некоторых ситуациях вы хотите установить заголовок cookie вручную. Обычно, если вы устанавливаете заголовок «Cookie», он игнорируется, но это потому, что по
HttpClientHandler
умолчанию используется егоCookieContainer
свойство для файлов cookie. Если вы отключите это, то, установивUseCookies
дляfalse
вас, вы можете установить заголовки cookie вручную, и они появятся в запросе, напримеристочник
Потратив несколько часов на эту проблему, ни один из приведенных выше ответов не помог мне, поэтому я нашел действительно полезный инструмент.
Во-первых, я использовал Fiddler 4 от Telerik для подробного изучения своих веб-запросов.
Во-вторых, я наткнулся на этот полезный плагин для Fiddler:
https://github.com/sunilpottumuttu/FiddlerGenerateHttpClientCode
Он просто сгенерирует код C # для вас. Пример был:
Обратите внимание, что мне пришлось закомментировать две строки, так как этот плагин еще не совсем совершенен, но, тем не менее, он сделал свою работу.
ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Я не связан и не одобрен ни Telerik, ни автором плагина в любом случае.
источник
Для меня простое решение работает, чтобы установить куки в объект HttpRequestMessage .
источник