]> granicus.if.org Git - python/commitdiff
Bug #947571: By default, urllib.urlopen() does not raise IOErrors
authorGeorg Brandl <georg@python.org>
Mon, 20 Feb 2006 21:26:18 +0000 (21:26 +0000)
committerGeorg Brandl <georg@python.org>
Mon, 20 Feb 2006 21:26:18 +0000 (21:26 +0000)
on server error codes. Make this clear.

Doc/lib/liburllib.tex

index 5e488c40971129b32cc6be719c85684a4b5e6af6..0a84c1adf805240f0a65953333301674587d8cc9 100644 (file)
@@ -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