Pergunta

Eu adicionei o apoio cookie para SOAPpy, substituindo HTTPTransport. Eu preciso funcionalidade para além da SOAPpy, então eu estava pensando em se mudar para ZSI, mas eu não consigo descobrir como colocar os cookies nos postes ZSI feitas para o serviço. Sem esses cookies, o servidor vai pensar que é uma solicitação não autorizada e ele irá falhar.

Como posso adicionar cookies de um Python Cookiejar aos pedidos ZSI?

Foi útil?

Solução

Se você ler a _Binding classe no cliente. py da ZSI você pode ver que ele tem um biscoitos variável, que é uma instância de Cookie.SimpleCookie. Após a ZSI exemplo e Cookie exemplo é assim que deve funcionar:

b = Binding(url='/cgi-bin/simple-test', tracefile=fp)
b.cookies['foo'] = 'bar'

Outras dicas

Além disso, a classe Binding também permite que qualquer cabeçalho a ser adicionado. Então eu descobri que eu posso simplesmente adicionar um cabeçalho "Cookie" para cada cookie eu preciso adicionar. Isso funcionou bem para o código gerado pelo wsdl2py, apenas adicionando os biscoitos logo após a ligação é formado na classe do cliente SOAP. Adicionando um parâmetro para a classe gerada para tomar os cookies como um dicionário é fácil e, em seguida, eles podem facilmente ser iterado e acrescentou.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top