From: Georg Brandl Date: Mon, 20 Feb 2006 21:26:18 +0000 (+0000) Subject: Bug #947571: By default, urllib.urlopen() does not raise IOErrors X-Git-Tag: v2.5a0~568 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=124a4e58c497f6bfdb2e26465b8b3940393a3b29;p=python Bug #947571: By default, urllib.urlopen() does not raise IOErrors on server error codes. Make this clear. --- diff --git a/Doc/lib/liburllib.tex b/Doc/lib/liburllib.tex index 5e488c4097..0a84c1adf8 100644 --- a/Doc/lib/liburllib.tex +++ b/Doc/lib/liburllib.tex @@ -23,7 +23,7 @@ Open a network object denoted by a URL for reading. If the URL does not have a scheme identifier, or if it has \file{file:} as its scheme identifier, this opens a local file (without universal newlines); otherwise it opens a socket to a server somewhere on the network. If -the connection cannot be made, or if the server returns an error code, +the connection cannot be made the \exception{IOError} exception is raised. If all went well, a file-like object is returned. This supports the following methods: \method{read()}, \method{readline()}, \method{readlines()}, \method{fileno()}, @@ -274,6 +274,9 @@ Additional keyword parameters, collected in \var{x509}, are used for authentication with the \file{https:} scheme. The keywords \var{key_file} and \var{cert_file} are supported; both are needed to actually retrieve a resource at an \file{https:} URL. + +\class{URLopener} objects will raise an \exception{IOError} exception +if the server returns an error code. \end{classdesc} \begin{classdesc}{FancyURLopener}{...} @@ -285,6 +288,10 @@ response codes (authentication required), basic HTTP authentication is performed. For the 30x response codes, recursion is bounded by the value of the \var{maxtries} attribute, which defaults to 10. +For all other response codes, the method \method{http_error_default()} +is called which you can override in subclasses to handle the error +appropriately. + \note{According to the letter of \rfc{2616}, 301 and 302 responses to POST requests must not be automatically redirected without confirmation by the user. In reality, browsers do allow automatic