This issue tracker has been migrated to GitHub ,
and is currently read-only.
For more information,
see the GitHub FAQs in the Python's Developer Guide.
Created on 2012年11月13日 01:57 by terry.reedy, last changed 2022年04月11日 14:57 by admin. This issue is now closed.
| Files | ||||
|---|---|---|---|---|
| File name | Uploaded | Description | Edit | |
| issue16464.diff | kachayev, 2012年11月17日 22:29 | review | ||
| issue16464_fixed.diff | kachayev, 2012年11月22日 17:02 | review | ||
| Messages (10) | |||
|---|---|---|---|
| msg175485 - (view) | Author: Terry J. Reedy (terry.reedy) * (Python committer) | Date: 2012年11月13日 01:57 | |
Code based on python-list post by a do-not-wish-to-register urllib user.
import urllib.request
opener = urllib.request.build_opener()
request = urllib.request.Request("http://example.com/", headers =
{"Content-Type": "application/x-www-form-urlencoded"})
print(request.data, '\n', request.header_items())
opener.open(request, "1".encode("us-ascii"))
print(request.data, '\n', request.header_items())
opener.open(request, "123456789".encode("us-ascii"))
print(request.data, '\n', request.header_items())
>>>
None
[('Content-type', 'application/x-www-form-urlencoded')]
b'1'
[('Content-length', '1'), ('Host', 'example.com'), ('User-agent', 'Python-urllib/3.3'), ('Content-type', 'application/x-www-form-urlencoded')]
b'123456789'
[('Content-length', '1'), ('Host', 'example.com'), ('User-agent', 'Python-urllib/3.3'), ('Content-type', 'application/x-www-form-urlencoded')]
The first opener.open adds data and several headers to request, including content-length. The second changes the data but not the content-length. The docs do not say anything about this either way.
|
|||
| msg175814 - (view) | Author: Alexey Kachayev (kachayev) * | Date: 2012年11月17日 22:29 | |
This is special case for more "general" problem. When request is executed with HTTP client and data is not None, it calculates content length and adds special header to request. Then one can change request.data attribute value, but header "Content-length" is not changed in this case. Patch is attached. I implemented request.data as property and added method "remove_header" to deal problem. Test cases are also provided. |
|||
| msg176108 - (view) | Author: Andrew Svetlov (asvetlov) * (Python committer) | Date: 2012年11月22日 14:52 | |
I'm agree with solution, see my comments in review for the patch. |
|||
| msg176109 - (view) | Author: Andrew Svetlov (asvetlov) * (Python committer) | Date: 2012年11月22日 14:52 | |
Perhaps it's a bit new behavior and should be applied to 3.4 only. |
|||
| msg176114 - (view) | Author: Alexey Kachayev (kachayev) * | Date: 2012年11月22日 17:02 | |
Fixed patch is attached. Documentation is updated. |
|||
| msg176492 - (view) | Author: Roundup Robot (python-dev) (Python triager) | Date: 2012年11月27日 21:06 | |
New changeset 618ea5612e83 by Andrew Svetlov in branch 'default': Issue #16464: reset Request's Content-Length header on .data change. http://hg.python.org/cpython/rev/618ea5612e83 |
|||
| msg176493 - (view) | Author: Andrew Svetlov (asvetlov) * (Python committer) | Date: 2012年11月27日 21:07 | |
Pushed. Thanks, Alexey. |
|||
| msg184732 - (view) | Author: Roundup Robot (python-dev) (Python triager) | Date: 2013年03月20日 04:15 | |
New changeset b1579eb4e1bc by R David Murray in branch 'default': #17485: Delete the Content-Length header if the data attribute is deleted. http://hg.python.org/cpython/rev/b1579eb4e1bc |
|||
| msg213097 - (view) | Author: Roundup Robot (python-dev) (Python triager) | Date: 2014年03月10日 22:11 | |
New changeset e6d862886e5c by R David Murray in branch 'default': whatsnew: urllib Request objects are now reusable. http://hg.python.org/cpython/rev/e6d862886e5c |
|||
| msg214109 - (view) | Author: STINNER Victor (vstinner) * (Python committer) | Date: 2014年03月19日 16:34 | |
changeset: 89857:ad0c75b7bd7d tag: tip parent: 89855:9120196b3114 parent: 89856:68335b8afb1f user: Victor Stinner <victor.stinner@gmail.com> date: Wed Mar 19 17:34:12 2014 +0100 description: (Merge 3.4) Skip test_urllib2.test_issue16464() is the ssl module is missing changeset: 89856:68335b8afb1f branch: 3.4 parent: 89852:c44258b4b7a4 user: Victor Stinner <victor.stinner@gmail.com> date: Wed Mar 19 17:31:20 2014 +0100 files: Lib/test/test_urllib2.py description: Skip test_urllib2.test_issue16464() is the ssl module is missing |
|||
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2022年04月11日 14:57:38 | admin | set | github: 60668 |
| 2014年03月19日 16:34:43 | vstinner | set | nosy:
+ vstinner messages: + msg214109 |
| 2014年03月10日 22:11:21 | python-dev | set | messages: + msg213097 |
| 2013年03月20日 04:15:59 | python-dev | set | messages: + msg184732 |
| 2012年11月27日 21:19:34 | asvetlov | set | status: open -> closed assignee: asvetlov resolution: fixed stage: needs patch -> resolved |
| 2012年11月27日 21:07:52 | asvetlov | set | messages:
+ msg176493 versions: + Python 3.4, - Python 3.3 |
| 2012年11月27日 21:06:31 | python-dev | set | nosy:
+ python-dev messages: + msg176492 |
| 2012年11月22日 17:03:00 | kachayev | set | files:
+ issue16464_fixed.diff messages: + msg176114 |
| 2012年11月22日 14:52:55 | asvetlov | set | messages: + msg176109 |
| 2012年11月22日 14:52:08 | asvetlov | set | nosy:
+ asvetlov messages: + msg176108 |
| 2012年11月17日 22:29:13 | kachayev | set | files:
+ issue16464.diff nosy: + kachayev messages: + msg175814 keywords: + patch |
| 2012年11月13日 01:57:33 | terry.reedy | create | |