Estoy tratando de usar la API web HttpClient
para hacer una publicación en un punto final que requiere iniciar sesión en forma de una cookie HTTP que identifica una cuenta (esto es solo algo que está #ifdef
fuera de la versión de lanzamiento).
¿Cómo agrego una cookie a la HttpRequestMessage
?
c#
rest
asp.net-mvc-4
asp.net-web-api
George Mauer
fuente
fuente
La respuesta aceptada es la forma correcta de hacer esto en la mayoría de los casos. Sin embargo, hay algunas situaciones en las que desea configurar el encabezado de la cookie manualmente. Normalmente, si configura un encabezado "Cookie", se ignora, pero eso se debe
HttpClientHandler
al uso predeterminado de suCookieContainer
propiedad para cookies. Si deshabilita que a continuación mediante el establecimientoUseCookies
defalse
que se pueden establecer cabeceras de cookies de forma manual y aparecerán en la solicitud, por ejemplo,fuente
Después de pasar horas en este tema, ninguna de las respuestas anteriores me ayudó, así que encontré una herramienta realmente útil.
En primer lugar, utilicé el Fiddler 4 de Telerik para estudiar en detalle mis solicitudes web
En segundo lugar, me encontré con este complemento útil para Fiddler:
https://github.com/sunilpottumuttu/FiddlerGenerateHttpClientCode
Simplemente generará el código C # para usted. Un ejemplo fue:
Tenga en cuenta que tuve que comentar dos líneas, ya que este complemento aún no es totalmente perfecto, pero de todos modos hizo el trabajo.
DESCARGO DE RESPONSABILIDAD: no estoy asociado ni respaldado por Telerik ni por el autor del complemento de ninguna manera.
fuente
Para mí, la solución simple funciona para establecer cookies en el objeto HttpRequestMessage .
fuente