Próbuję użyć interfejsu API sieci Web, HttpClient
aby zrobić post do punktu końcowego, który wymaga zalogowania się w postaci pliku cookie HTTP, który identyfikuje konto (jest to tylko coś, co zostało #ifdef
usunięte z wersji wydania).
Jak dodać plik cookie do HttpRequestMessage
?
c#
rest
asp.net-mvc-4
asp.net-web-api
George Mauer
źródło
źródło
W większości przypadków zaakceptowana odpowiedź to właściwy sposób. Istnieją jednak sytuacje, w których chcesz ręcznie ustawić nagłówek pliku cookie. Zwykle po ustawieniu nagłówka „Cookie” jest on ignorowany, ale
HttpClientHandler
dzieje się tak dlatego, że domyślnie używa jegoCookieContainer
właściwości do plików cookie. Jeśli wyłączysz które następnie ustawiającUseCookies
sięfalse
można ustawić nagłówki cookies ręcznie i pojawią się one we wniosku, npźródło
Po spędzeniu godzin na tym problemie żadna z powyższych odpowiedzi nie pomogła mi, więc znalazłem naprawdę przydatne narzędzie.
Po pierwsze, użyłem Fiddler 4 firmy Telerik do szczegółowego przestudiowania moich żądań internetowych
Po drugie, natknąłem się na tę przydatną wtyczkę do Fiddler:
https://github.com/sunilpottumuttu/FiddlerGenerateHttpClientCode
Po prostu wygeneruje dla Ciebie kod C #. Przykładem było:
Zauważ, że musiałem skomentować dwa wiersze, ponieważ ta wtyczka nie jest jeszcze całkowicie idealna, ale mimo to zadziałała.
WYŁĄCZENIE ODPOWIEDZIALNOŚCI: w żadnym wypadku nie jestem związany ani wspierany przez Telerik ani autora wtyczki.
źródło
Dla mnie proste rozwiązanie działa w celu ustawienia plików cookie w obiekcie HttpRequestMessage .
źródło