Estou tentando usar as APIs da web HttpClient
para fazer uma postagem em um endpoint que requer login na forma de um cookie HTTP que identifica uma conta (isso é apenas algo que #ifdef
sai da versão de lançamento).
Como adiciono um cookie ao HttpRequestMessage
?
c#
rest
asp.net-mvc-4
asp.net-web-api
George Mauer
fonte
fonte
A resposta aceita é a maneira correta de fazer isso na maioria dos casos. No entanto, há algumas situações em que você deseja definir o cabeçalho do cookie manualmente. Normalmente, se você definir um cabeçalho "Cookie", ele será ignorado, mas isso ocorre porque o
HttpClientHandler
padrão é usar suaCookieContainer
propriedade para cookies. Se você desabilitar isso, configurandoUseCookies
para,false
poderá definir manualmente os cabeçalhos dos cookies e eles aparecerão na solicitação, por exemplofonte
Depois de passar horas nessa questão, nenhuma das respostas acima me ajudou a encontrar uma ferramenta realmente útil.
Primeiramente, usei o Fiddler 4 da Telerik para estudar meus pedidos da Web em detalhes
Em segundo lugar, me deparei com este plugin útil para o Fiddler:
https://github.com/sunilpottumuttu/FiddlerGenerateHttpClientCode
Ele irá gerar apenas o código C # para você. Um exemplo foi:
Observe que eu tive que comentar duas linhas, pois esse plugin ainda não é totalmente perfeito, mas fez o trabalho mesmo assim.
AVISO LEGAL: Eu não sou associado ou endossado pela Telerik ou pelo autor do plugin de qualquer maneira.
fonte
Para mim, a solução simples funciona para definir cookies no objeto HttpRequestMessage .
fonte