python solicita módulo-sessão python solicita módulo-solicitação api

O protocolo http em si não possui estado.Para manter o estado entre solicitações, existe um mecanismo de sessão e cookie. pedidos também fornece métodos correspondentes para manipulá-los.

O objeto de sessão em pedidos nos permite manter certos parâmetros entre pedidos HTTP, ou seja, o cabeçalho do pedido enviado pelo mesmo objeto de sessão carrega um parâmetro especificado. Obviamente, a aplicação mais comum é que ele pode manter os cookies em uma série de solicitações subsequentes.

Abaixo, através dos exemplos na documentação oficial para entender como usá-lo.

Import Pedidos 

S = requests.Session ()
 # Passo: enviar um pedido, o pedido de definir cookies 
# Dicas: http://httpbin.org pode ser usado para testar a solicitação HTTP e resposta 
s.get ( ' http: //httpbin.org/cookies/set/sessioncookie/123456789 ' )
 # Passo: um pedido de retransmissão para a solicitação atual para exibir os biscoitos 
R & lt s.get = ( " http://httpbin.org/cookies " )
 print (r.text)

Resultado da operação

{
   " cookies " : {
     " sessioncookie " : " 123456789 " 
  } 
}

A partir dos resultados, podemos ver que a segunda solicitação carregou o cookie definido pela primeira solicitação, ou seja, o objetivo de manter o cookie é alcançado através da sessão. No exemplo, um objeto orders.Session () é criado e a operação de solicitação http é realizada por meio do objeto.Esta operação é basicamente semelhante a orders.request (). Você pode verificar a API de requisição de módulo de solicitação do python para entender.

Como a sessão torna as solicitações coerentes, há uma diferença entre os parâmetros de solicitação cruzada e os parâmetros de não solicitação cruzada. Ou seja, às vezes eu quero que todas as solicitações tenham um determinado parâmetro, e às vezes eu apenas quero uma única solicitação com parâmetros temporários. Use o exemplo a seguir para entender como usá-lo.

pedidos de 
importação 
s = 
orders.Session () s.headers.update ({ ' x-test ' : ' true ' })
 # são enviados 'x-test' e 'x-test2' 
r1 = s.get ( ' http : //httpbin.org/headers ' , headers = { ' x-test2 ' : ' true ' })
 print (r1.text)
 # ' x-test 'é enviado 
r2 = s.get ( ' http: // httpbin .org / headers ' )
 print (r2.text)

 Resultado da operação

# r1.text 
{
   " headers " : {
     " Accept " : " * / * " , 
     " Accept-Encoding " : " gzip, deflate " , 
     " Host " : " httpbin.org " , 
     " User-Agent " : " python -requests / 2.22.0 " , 
     " X-Amzn-Trace-Id " : "Raiz = 1-5e91656f-b99f14a4d6f47f9e55a90bb4 " , 
     "Teste X " : " true " , 
     " X-Test2 " : " true " 
  } 
} 
# r2.text 
{
   " headers " : {
     " Accept " : " * / * " , 
     " Accept-Encoding " : " gzip, deflate " , 
     " Host " : " httpbin.org " , 
     "Agente do Usuário " : "python-orders / 2.22.0 " , 
     " X-Amzn-Trace-Id " : " Raiz = 1-5e91656f-e9741db4c2ca2fd6e0628396 " , 
     " X-Test " : " true " 
  } 
}

 A partir dos resultados, podemos tirar duas conclusões:

  • A sessão pode fornecer dados padrão para o método de solicitação.Por exemplo, {'x-test': 'true'} na primeira solicitação são os dados padrão e os dados padrão no momento são o parâmetro de solicitação cruzada.
  • Os parâmetros no nível do método não serão mantidos entre as solicitações, por exemplo, a segunda solicitação não carrega os cabeçalhos = {'x-test2': 'true'} e o resultado retornado não contém {'x-test2': 'true' }, Indicando que o parâmetro não foi retido após a primeira solicitação.

Referências

 

Acho que você gosta

Origin www.cnblogs.com/zhuosanxun/p/12679121.html
Recomendado
Clasificación