Muitos aplicativos da web enviam cookies em vários cabeçalhos Set-Cookie, um cabeçalho para um cookie. Requests junta esses cabeçalhos em um grande cabeçalho separado por vírgula.
Do mesmo webapp para requests.get
Set-Cookie: ASP.NET_SessionId=token1; path=/; HttpOnly
Set-Cookie: Cookie1=token2; path=/ecp
Set-Cookie: X-BEResource=WIN-RBFR0BDA7V7.testlab.net~1; path=/ecp/15.0.516.30; HttpOnly
Set-Cookie: X-BackEndCookie=token3; expires=Mon, 03-Apr-2017 12:25:07 GMT; path=/ecp; HttpOnly
Em solicitações:
resp.headers, este parece
Set-Cookie: ASP.NET_SessionId=token1; path=/; HttpOnly,
Cookie1=token2; path=/ecp,
X-BEResource=WIN-RBFR0BDA7V7.testlab.net~1; path=/ecp/15.0.516.30; HttpOnly,
X-BackEndCookie=token3; expires=Thu, 06-Apr-2017 08:27:22 GMT; path=/ecp; HttpOnly
Firefox, IE, Chrome inválido interpretou estes cookies porque o separador é uma vírgula, mas no campo EXPIRES vírgula separe o dia e a data.
Principal problema no tráfego de modificação. Na minha opinião, o servidor enviar vários cabeçalhos lib deve retornar vários cabeçalhos
Requests não promete deixar os cabeçalhos na forma em que foram recebidos do servidor. No momento, eu recomendo fortemente que você use o cookiejar Requests usa para armazenar cookies em vez de extraí-los dos cabeçalhos: nós os inserimos corretamente lá.
A longo prazo, provavelmente deveríamos adicionar uma correção para excluir o cabeçalho Set-Cookie
de se juntar desta forma.
Isso nos incomodou e nos custou algumas horas. Eu gostaria de votar para deixar Set-Cookie
intacto. Por que as solicitações mexem com os cabeçalhos de qualquer maneira? Existe algum bom motivo para isso? IMHO, isso só complica as coisas para todos. o que estou perdendo?
Obrigado pelo seu bom trabalho!
Olá, existe uma maneira de analisar os cabeçalhos corretamente com https://github.com/Ousret/kiss-headers requests
; não será possível alterar sua representação para os cabeçalhos tão cedo.
Comentários muito úteis
Requests não promete deixar os cabeçalhos na forma em que foram recebidos do servidor. No momento, eu recomendo fortemente que você use o cookiejar Requests usa para armazenar cookies em vez de extraí-los dos cabeçalhos: nós os inserimos corretamente lá.
A longo prazo, provavelmente deveríamos adicionar uma correção para excluir o cabeçalho
Set-Cookie
de se juntar desta forma.