Feature Requests item #1216944, was opened at 2005-06-08 09:45
Message generated for change (Settings changed) made by gbrandl
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=355470&aid=1216944&group_id=5470

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: Python Library
Group: None
Status: Closed
Resolution: Accepted
Priority: 5
Submitted By: Mike Foord (mjfoord)
>Assigned to: Georg Brandl (gbrandl)
Summary: Add Error Code Dictionary to urllib2

Initial Comment:
In order to properly handle 'HTTPError's from 
urllib2.urlopen you need to map error codes to an error 
message.

I suggest the addition of the following dictionary to do 
that  :

    # Table mapping response codes to messages; 
entries have the
    # form {code: (shortmessage, longmessage)}.
    httpresponses = {
        100: ('Continue', 'Request received, please 
continue'),
        101: ('Switching Protocols',
              'Switching to new protocol; obey Upgrade 
header'),

        200: ('OK', 'Request fulfilled, document follows'),
        201: ('Created', 'Document created, URL follows'),
        202: ('Accepted',
              'Request accepted, processing continues off-
line'),
        203: ('Non-Authoritative Information', 'Request 
fulfilled from cache'),
        204: ('No response', 'Request fulfilled, nothing 
follows'),
        205: ('Reset Content', 'Clear input form for further 
input.'),
        206: ('Partial Content', 'Partial content follows.'),

        300: ('Multiple Choices',
              'Object has several resources -- see URI list'),
        301: ('Moved Permanently', 'Object moved 
permanently -- see URI list'),
        302: ('Found', 'Object moved temporarily -- see URI 
list'),
        303: ('See Other', 'Object moved -- see Method 
and URL list'),
        304: ('Not modified',
              'Document has not changed since given time'),
        305: ('Use Proxy',
              'You must use proxy specified in Location to 
access this '
              'resource.'),
        307: ('Temporary Redirect',
              'Object moved temporarily -- see URI list'),

        400: ('Bad request',
              'Bad request syntax or unsupported method'),
        401: ('Unauthorized',
              'No permission -- see authorization schemes'),
        402: ('Payment required',
              'No payment -- see charging schemes'),
        403: ('Forbidden',
              'Request forbidden -- authorization will not 
help'),
        404: ('Not Found', 'Nothing matches the given URI'),
        405: ('Method Not Allowed',
              'Specified method is invalid for this server.'),
        406: ('Not Acceptable', 'URI not available in 
preferred format.'),
        407: ('Proxy Authentication Required', 'You must 
authenticate with '
              'this proxy before proceeding.'),
        408: ('Request Time-out', 'Request timed out; try 
again later.'),
        409: ('Conflict', 'Request conflict.'),
        410: ('Gone',
              'URI no longer exists and has been 
permanently removed.'),
        411: ('Length Required', 'Client must specify 
Content-Length.'),
        412: ('Precondition Failed', 'Precondition in 
headers is false.'),
        413: ('Request Entity Too Large', 'Entity is too 
large.'),
        414: ('Request-URI Too Long', 'URI is too long.'),
        415: ('Unsupported Media Type', 'Entity body in 
unsupported format.'),
        416: ('Requested Range Not Satisfiable',
              'Cannot satisfy request range.'),
        417: ('Expectation Failed',
              'Expect condition could not be satisfied.'),

        500: ('Internal error', 'Server got itself in trouble'),
        501: ('Not Implemented',
              'Server does not support this operation'),
        502: ('Bad Gateway', 'Invalid responses from 
another server/proxy.'),
        503: ('Service temporarily overloaded',
              'The server cannot process the request due to 
a high load'),
        504: ('Gateway timeout',
              'The gateway server did not receive a timely 
response'),
        505: ('HTTP Version not supported', 'Cannot fulfill 
request.'),
        }

----------------------------------------------------------------------

Comment By: Georg Brandl (birkenfeld)
Date: 2005-07-14 06:41

Message:
Logged In: YES 
user_id=1188172

Okay. Checked in (without the second field) as
* Lib/urllib2.py r1.83
* Lib/test/test_urllib2.py r1.20
* Doc/lib/liburllib2.tex r1.23
* Misc/NEWS r1.1314

----------------------------------------------------------------------

Comment By: Raymond Hettinger (rhettinger)
Date: 2005-07-13 22:24

Message:
Logged In: YES 
user_id=80475

Reinfeld, you are welcome to put this in.

Pay attention to the little details.  Look-up the http
protocol spec and use the exact spelling and exact
upper/lower letter case.  

Only include the second field of the tuple if it is
standard.  I quickly looked at a couple of different sources
and found that the "meaning" field was worded diffferently.
 If there is not a standard word-for-word official
definition, then leave that part out and just have a simple
mapping:  {500: "Internal Error", 501: "Not Implemented, ...}.


----------------------------------------------------------------------

Comment By: Georg Brandl (birkenfeld)
Date: 2005-06-08 16:38

Message:
Logged In: YES 
user_id=1188172

+1. This would simplify delivering messages to users.

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=355470&aid=1216944&group_id=5470
_______________________________________________
Python-bugs-list mailing list 
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to