Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

610
Visualizações
Implementando el reintento de solicitudes en Python

¿Cómo implemento un conteo de reintentos de 5 veces, con 10 segundos de diferencia cuando envío una solicitud POST usando el paquete de requests ? He encontrado muchos ejemplos de solicitudes GET , pero no post .

Esto es con lo que estoy trabajando en este momento, a veces recibo un error 503. Solo necesito implementar un reintento si obtengo un código HTTP de respuesta incorrecta.

 for x in final_payload: post_response = requests.post(url=endpoint, data=json.dumps(x), headers=headers) #Email me the error if str(post_response.status_code) not in ["201","200"]: email(str(post_response.status_code))
over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

puede usar el módulo urllib3.util.retry en combinación con requests para tener algo como lo siguiente:

 from urllib3.util.retry import Retry import requests from requests.adapters import HTTPAdapter def retry_session(retries, session=None, backoff_factor=0.3): session = session or requests.Session() retry = Retry( total=retries, read=retries, connect=retries, backoff_factor=backoff_factor, method_whitelist=False, ) adapter = HTTPAdapter(max_retries=retry) session.mount('http://', adapter) session.mount('https://', adapter) return session

Uso:

 session = retry_session(retries=5) session.post(url=endpoint, data=json.dumps(x), headers=headers)

NB: también puede heredar de la clase Retry y personalizar el comportamiento de reintento y los intervalos de reintento.

over 4 years ago · Santiago Trujillo Relatório

0

Descubrí que el comportamiento predeterminado de Retries no se aplicaba a POST. Para hacerlo, se requiere la adición de method_whitelist, por ejemplo, a continuación:

 def retry_session(retries=5): session = Session() retries = Retry(total=retries, backoff_factor=0.1, status_forcelist=[500, 502, 503, 504], method_whitelist=frozenset(['GET', 'POST'])) session.mount('https://', HTTPAdapter(max_retries=retries)) session.mount('http://', HTTPAdapter(max_retries=retries)) return session
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda