[ python-Feature Requests-1216944 ] Add Error Code Dictionary to urllib2
SourceForge.net
noreply at sourceforge.net
Thu Jul 14 00:24:47 CEST 2005
Feature Requests item #1216944, was opened at 2005-06-08 04:45
Message generated for change (Comment added) made by rhettinger
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: Open
>Resolution: Accepted
Priority: 5
Submitted By: Mike Foord (mjfoord)
>Assigned to: Reinhold Birkenfeld (birkenfeld)
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: Raymond Hettinger (rhettinger)
Date: 2005-07-13 17: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: Reinhold Birkenfeld (birkenfeld)
Date: 2005-06-08 11: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
More information about the Python-bugs-list
mailing list