1. import requests
  2. import logging
  3. import sys
  4. # Configure logging to suppress ResponseHeaders related errors
  5. logging.getLogger("requests").setLevel(logging.WARNING)
  6. def make_request(url, method='GET', **kwargs):
  7. """
  8. Makes an HTTP request and handles potential ResponseHeaders errors.
  9. Args:
  10. url (str): The URL to request.
  11. method (str): The HTTP method (GET, POST, etc.). Defaults to GET.
  12. **kwargs: Additional keyword arguments to pass to the requests.get/post function.
  13. Returns:
  14. requests.Response: The response object if successful, None otherwise.
  15. """
  16. try:
  17. response = requests.request(method, url, **kwargs)
  18. return response
  19. except requests.exceptions.RequestException as e:
  20. # Suppress ResponseHeaders errors specifically. Other exceptions are re-raised.
  21. if "ResponseHeaders" in str(e):
  22. logging.warning(f"Suppressing ResponseHeaders error for URL: {url}. Error: {e}")
  23. return None
  24. else:
  25. # Re-raise other exceptions
  26. raise e
  27. if __name__ == '__main__':
  28. # Example Usage:
  29. url = "https://httpstat.us/404" #Example URL returning a 404
  30. response = make_request(url)
  31. if response:
  32. print(f"Status Code: {response.status_code}")
  33. #Process the response as needed.
  34. else:
  35. print(f"Request to {url} failed.")

Add your comment