J'essaie d'utiliser les API Web HttpClient
pour publier un message sur un point de terminaison qui nécessite une connexion sous la forme d'un cookie HTTP qui identifie un compte (ce n'est que quelque chose qui est #ifdef
sorti de la version finale).
Comment ajouter un cookie au HttpRequestMessage
?
c#
rest
asp.net-mvc-4
asp.net-web-api
George Mauer
la source
la source
La réponse acceptée est la bonne façon de procéder dans la plupart des cas. Cependant, dans certaines situations, vous souhaitez définir manuellement l'en-tête du cookie. Normalement, si vous définissez un en-tête "Cookie", il est ignoré, mais c'est parce que par
HttpClientHandler
défaut utilise saCookieContainer
propriété pour les cookies. Si vous désactivez cela, en définissantUseCookies
surfalse
vous pouvez définir manuellement les en-têtes de cookies et ils apparaîtront dans la demande, par exemplela source
Après avoir passé des heures sur ce problème, aucune des réponses ci-dessus ne m'a aidé, j'ai donc trouvé un outil vraiment utile.
Tout d'abord, j'ai utilisé Fiddler 4 de Telerik pour étudier mes demandes Web en détail
Deuxièmement, je suis tombé sur ce plugin utile pour Fiddler:
https://github.com/sunilpottumuttu/FiddlerGenerateHttpClientCode
Il va juste générer le code C # pour vous. Un exemple était:
Notez que j'ai dû commenter deux lignes car ce plugin n'est pas encore totalement parfait mais il a quand même fait le travail.
AVERTISSEMENT: je ne suis pas associé ou approuvé par Telerik ou l'auteur du plugin de toute façon.
la source
Pour moi, la solution simple fonctionne pour définir des cookies dans l' objet HttpRequestMessage .
la source