import requests
from requests.exceptions import HTTPError
def handle_cookie_failure(url, max_retries=3):
"""
Handles potential cookie-related failures when making HTTP requests.
Uses synchronous execution with retry logic.
Args:
url (str): The URL to request.
max_retries (int): The maximum number of retry attempts.
Returns:
requests.Response: The response object if successful,
None if all retries fail.
"""
for attempt in range(max_retries):
try:
response = requests.get(url)
response.raise_for_status() # Raise HTTPError for bad responses (4xx or 5xx)
return response
except HTTPError as e:
print(f"Attempt {attempt + 1} failed: {e}")
if attempt < max_retries - 1:
print("Retrying...")
import time
time.sleep(2**(attempt)) # Exponential backoff
else:
print("Max retries reached. Failure.")
return None
except Exception as e:
print(f"An unexpected error occurred: {e}")
return None
if __name__ == '__main__':
# Example usage
url = "https://httpstat.us/404" # Example URL that will return a 404 error.
response = handle_cookie_failure(url)
if response:
print("Request successful:")
print(response.status_code)
#print(response.text)
else:
print("Request failed after multiple retries.")
Add your comment