1. import requests
  2. from requests.exceptions import HTTPError
  3. def handle_cookie_failure(url, max_retries=3):
  4. """
  5. Handles potential cookie-related failures when making HTTP requests.
  6. Uses synchronous execution with retry logic.
  7. Args:
  8. url (str): The URL to request.
  9. max_retries (int): The maximum number of retry attempts.
  10. Returns:
  11. requests.Response: The response object if successful,
  12. None if all retries fail.
  13. """
  14. for attempt in range(max_retries):
  15. try:
  16. response = requests.get(url)
  17. response.raise_for_status() # Raise HTTPError for bad responses (4xx or 5xx)
  18. return response
  19. except HTTPError as e:
  20. print(f"Attempt {attempt + 1} failed: {e}")
  21. if attempt < max_retries - 1:
  22. print("Retrying...")
  23. import time
  24. time.sleep(2**(attempt)) # Exponential backoff
  25. else:
  26. print("Max retries reached. Failure.")
  27. return None
  28. except Exception as e:
  29. print(f"An unexpected error occurred: {e}")
  30. return None
  31. if __name__ == '__main__':
  32. # Example usage
  33. url = "https://httpstat.us/404" # Example URL that will return a 404 error.
  34. response = handle_cookie_failure(url)
  35. if response:
  36. print("Request successful:")
  37. print(response.status_code)
  38. #print(response.text)
  39. else:
  40. print("Request failed after multiple retries.")

Add your comment