You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.
Show more details
GitHub fields:
assignee=Noneclosed_at=<Date2015-11-26.11:19:03.673>created_at=<Date2014-12-03.18:45:17.797>labels= ['docs']
title='HTTPResponse.msg not as documented'updated_at=<Date2015-11-26.11:19:03.645>user='https://bugs.python.org/bastik'
This value is apparently overriden in urllib/request.py:
./urllib/request.py:1246: # This line replaces the .msg attribute of the HTTPResponse
./urllib/request.py-1247- # with .headers, because urllib clients expect the response to
./urllib/request.py:1248: # have the reason in .msg. It would be good to mark this
./urllib/request.py-1249- # attribute is deprecated and get then to use info() or
./urllib/request.py-1250- # .headers.
./urllib/request.py:1251: r.msg = r.reason
Anyhow, it should be documented, that is not safe to retrieve the headers with HTTPResponse.msg and maybe add HTTPResponse.headers to the documentation.
See bpo-21228 for a patch which documents the “.msg” hack, and that the info() method is available for HTTP responses.
I think documenting the “.headers” attribute would be a bad idea, because it is introducing yet another way to do what the almost-documented info() method already does.
Activity
bastik commentedon Dec 3, 2014
HTTPResponse.msg is documented as a http.client.HTTPMessage object containing the headers of the response [1].
But in fact this is a string containing the status code:
This value is apparently overriden in urllib/request.py:
./urllib/request.py:1246: # This line replaces the .msg attribute of the HTTPResponse
./urllib/request.py-1247- # with .headers, because urllib clients expect the response to
./urllib/request.py:1248: # have the reason in .msg. It would be good to mark this
./urllib/request.py-1249- # attribute is deprecated and get then to use info() or
./urllib/request.py-1250- # .headers.
./urllib/request.py:1251: r.msg = r.reason
Anyhow, it should be documented, that is not safe to retrieve the headers with HTTPResponse.msg and maybe add HTTPResponse.headers to the documentation.
[1] https://docs.python.org/3/library/http.client.html
vadmium commentedon Dec 5, 2014
See bpo-21228 for a patch which documents the “.msg” hack, and that the info() method is available for HTTP responses.
I think documenting the “.headers” attribute would be a bad idea, because it is introducing yet another way to do what the almost-documented info() method already does.
vadmium commentedon Jan 29, 2015
Documenting the “headers” attribute is also discussed in bpo-12707
python-dev commentedon Nov 26, 2015
New changeset fa3c9faabfb0 by Martin Panter in branch '3.4':
Issues bpo-22989, bpo-21228: Document HTTP response object for urlopen()
https://hg.python.org/cpython/rev/fa3c9faabfb0
New changeset b55c006b79bc by Martin Panter in branch '3.5':
Issue bpo-22989, bpo-21228: Merge urlopen() doc from 3.4 into 3.5
https://hg.python.org/cpython/rev/b55c006b79bc
New changeset c6930661599b by Martin Panter in branch 'default':
Issue bpo-22989, bpo-21228: Merge urlopen() doc from 3.5
https://hg.python.org/cpython/rev/c6930661599b
vadmium commentedon Nov 26, 2015
The documentation now mentions the “msg” quirk and the info() method.