Commit Graph

191 Commits

Author SHA1 Message Date
R David Murray dc1650ca06 #22233: Only split headers on \r and/or \n, per email RFCs.
Original patch by Martin Panter, new policy fixes by me.
2016-09-07 17:44:34 -04:00
R David Murray 1badd28163 Merge: #22233: Only split headers on \r and/or \n, per email RFCs. 2016-09-07 17:46:55 -04:00
Martin Panter ef91bb2660 Issue #12319: Always send file request bodies using chunked encoding
The previous attempt to determine the file’s Content-Length gave a false
positive for pipes on Windows.

Also, drop the special case for sending zero-length iterable bodies.
2016-08-27 01:39:26 +00:00
Martin Panter 3c0d0baf2b Issue #12319: Support for chunked encoding of HTTP request bodies
When the body object is a file, its size is no longer determined with
fstat(), since that can report the wrong result (e.g. reading from a pipe).
Instead, determine the size using seek(), or fall back to chunked encoding
for unseekable files.

Also, change the logic for detecting text files to check for TextIOBase
inheritance, rather than inspecting the “mode” attribute, which may not
exist (e.g. BytesIO and StringIO).  The Content-Length for text files is no
longer determined ahead of time, because the original logic could have been
wrong depending on the codec and newline translation settings.

Patch by Demian Brecht and Rolf Krahl, with a few tweaks by me.
2016-08-24 06:33:33 +00:00
Terry Jan Reedy ffcb022738 Issue #27787: No longer call deleted test_main(). 2016-08-23 14:20:37 -04:00
Martin Panter 1fa6915427 Issue #27787: Remove test_main() and hard-coded list of test classes
The @reap_threads decorator made the test wait (for up to 1 s) until
background threads have finished.  Calling join() with a timeout should be
equivalent.
2016-08-23 09:01:43 +00:00
Martin Panter b63c56077f Close HTTP connections and responses in tests to avoid ResourceWarnings 2016-08-12 11:59:52 +00:00
Martin Panter 8d56c026a5 Issue #27125: Fix various errors like “will [be] inherited” 2016-05-29 04:13:35 +00:00
Martin Panter d979b2cfcf Issue #21069: Move test_fileno() from test_urllibnet and rewrite it
* No longer attempts to close already freed socket file descriptor
* Use socket object to be compatible with Windows
* Do not use a timeout to avoid complication with non-blocking mode
* Use internal localhost server rather than depending on a third party
* Avoid trouble with buffered HTTP data by testing tunnelled CONNECT data
2016-04-09 14:03:17 +00:00
Martin Panter ce911c3fed Issue #26499: Fixes to HTTPResponse.readline() and read1(), by Silent Ghost 2016-03-17 06:42:48 +00:00
Martin Panter 44391481d7 Issue #26045: Add UTF-8 suggestion to error in http.client
Based on patch by Guido van Rossum.
2016-02-09 10:20:52 +00:00
R David Murray cae7bdb424 #3566: Clean up handling of remote server disconnects.
This changeset does two things: introduces a new RemoteDisconnected exception
(that subclasses ConnectionResetError and BadStatusLine) so that a remote
server disconnection can be detected by client code (and provides a better
error message for debugging purposes), and ensures that the client socket is
closed if a ConnectionError happens, so that the automatic re-connection code
can work if the application handles the error and continues on.

Tests are added that confirm that a connection is re-used or not re-used
as appropriate to the various combinations of protocol version and headers.

Patch by Martin Panter, reviewed by Demian Brecht.  (Tweaked only slightly by
me.)
2015-04-05 19:26:29 -04:00
R David Murray 0a0d20edfb Merge: #23539: Set Content-Length to 0 for PUT, POST, and PATCH if body is None. 2015-03-22 15:19:01 -04:00
R David Murray beed8402ca #23539: Set Content-Length to 0 for PUT, POST, and PATCH if body is None.
Some http servers will reject PUT, POST, and PATCH requests if they
do not have a Content-Length header.

Patch by James Rutherford, with additional cleaning up of the
'request' documentation by me.
2015-03-22 15:18:23 -04:00
Serhiy Storchaka b669bfc2be Issue #22928: Disabled HTTP header injections in http.client.
Original patch by Demian Brecht.
2015-03-12 11:15:15 +02:00
Serhiy Storchaka a112a8ae47 Issue #22928: Disabled HTTP header injections in http.client.
Original patch by Demian Brecht.
2015-03-12 11:13:36 +02:00
Victor Stinner 69899e6f3f Merge 3.4 (httplib) 2015-02-27 17:47:40 +01:00
Victor Stinner b389b48265 Issue #23526: Fix ResourceWarning in test_httplib. Patch written by Alex Shkop. 2015-02-27 17:47:23 +01:00
Berker Peksag abbf0f40bb Issue #23442: Rename two member names to stay backward compatible
with the constants in http.client.

Initial patch by Demian Brecht.
2015-02-20 14:57:31 +02:00
Berker Peksag 8e28679417 Issue #23439: Add missing entries to http.client.__all__.
Also, document the LineTooLong exception since it can be raised by
the members of public API (e.g. http.client.HTTPResponse).

Patch by Martin Panter.
2015-02-20 09:45:05 +02:00
Berker Peksag babc688180 Issue #23439: Add missing entries to http.client.__all__.
Also, document the LineTooLong exception since it can be raised by
the members of public API (e.g. http.client.HTTPResponse).

Patch by Martin Panter.
2015-02-20 09:39:38 +02:00
Berker Peksag ab53ab0a84 Issue #13128: Print response headers for CONNECT requests when debuglevel > 0.
Patch by Demian Brecht.
2015-02-03 12:22:11 +02:00
Benjamin Peterson 60a2f49c8c merge 3.4 (#19996) 2015-01-25 23:31:58 -05:00
Benjamin Peterson 155ceaa454 handle headers with no key (closes #19996)
Patch by Cory Benfield.
2015-01-25 23:30:30 -05:00
Senthil Kumaran cc522bdd0c merge from 3.4
Increase http.client.HTTPConnection test coverage.

Added a new tunnel test to verify setting of _tunnel_host, _tunnel_port,
_tunnel_headers attributes on HTTPConnection object.
2015-01-24 19:26:18 -08:00
Senthil Kumaran e6cc70123e Increase http.client.HTTPConnection test coverage.
Added a new tunnel test to verify setting of _tunnel_host, _tunnel_port,
_tunnel_headers attributes on HTTPConnection object.
2015-01-24 19:24:59 -08:00
Benjamin Peterson 9d8a3ad02a http.client: disable Nagle's algorithm (closes #23302)
Patch by Demian Brecht.
2015-01-23 11:02:57 -05:00
Benjamin Peterson 2a7d05a9f2 merge 3.4 2014-12-13 16:13:31 -05:00
Benjamin Peterson 9566de18e6 make sure server threads get cleaned up 2014-12-13 16:13:24 -05:00
Serhiy Storchaka 4ac7ed97a8 Issue #22095: Fixed HTTPConnection.set_tunnel with default port. The port
value in the host header was set to "None".  Patch by Demian Brecht.
2014-12-12 09:29:15 +02:00
Benjamin Peterson a090f01bb6 HTTPSConnection: prefer the context's check_hostname attribute over the constructor parameter (#22959) 2014-12-07 13:18:25 -05:00
Serhiy Storchaka b491e0521f Issue #21032. Fixed socket leak if HTTPConnection.getresponse() fails.
Original patch by Martin Panter.
2014-12-01 13:07:45 +02:00
Benjamin Peterson 2615e9e293 don't fail tests when www.python.org can't be validated by the system 2014-11-25 15:16:55 -06:00
Serhiy Storchaka d4a001b23c Issue #22095: Fixed HTTPConnection.set_tunnel with default port. The port
value in the host header was set to "None".  Patch by Demian Brecht.
2014-12-12 09:30:18 +02:00
Benjamin Peterson b46247bee5 merge 3.4 (#22959) 2014-12-07 13:47:34 -05:00
Serhiy Storchaka 2205da43a6 Issue #21032. Fixed socket leak if HTTPConnection.getresponse() fails.
Original patch by Martin Panter.
2014-12-01 13:10:12 +02:00
Benjamin Peterson 8dcaa4b1c6 merge 3.4 2014-11-25 18:05:40 -06:00
Georg Brandl dca213dd77 merge with 3.4 2014-11-05 22:17:29 +01:00
Georg Brandl fbaf931096 test_httplib: use self-signed.pythontest.net for verification test with non-root-CA cert 2014-11-05 20:37:40 +01:00
Benjamin Peterson 1cca273669 merge 3.4 (#22417) 2014-11-03 14:36:48 -05:00
Benjamin Peterson 4ffb075271 PEP 476: enable HTTPS certificate verification by default (#22417)
Patch by Alex Gaynor with some modifications by me.
2014-11-03 14:29:33 -05:00
Charles-François Natali 6e20460dc6 Issue #21566: Make use of socket.listen() default backlog. 2014-07-23 19:28:13 +01:00
Senthil Kumaran 166214c344 merge from 3.4
Issue #7776: Fix ``Host:'' header and reconnection when using  http.client.HTTPConnection.set_tunnel()
Patch by Nikolaus Rath.
2014-04-14 13:10:05 -04:00
Senthil Kumaran 9da047b3a5 Issue #7776: Fix ``Host:'' header and reconnection when using http.client.HTTPConnection.set_tunnel().
Patch by Nikolaus Rath.
2014-04-14 13:07:56 -04:00
Kristján Valur Jónsson 8e5d0caf92 Issue #19009
Enhance HTTPResponse.readline() performance
2014-03-19 10:07:26 +00:00
Serhiy Storchaka d3e1207191 Issue #20555: Use specific asserts in urllib, httplib, ftplib, cgi, wsgiref tests. 2014-02-08 14:51:10 +02:00
Serhiy Storchaka 25d8aeac7c Issue #20555: Use specific asserts in urllib, httplib, ftplib, cgi, wsgiref tests. 2014-02-08 14:50:08 +02:00
Serhiy Storchaka cac05e2e90 Issue #20007: HTTPResponse.read(0) no more prematurely closes connection.
Original patch by Simon Sapin.
2013-12-17 21:51:40 +02:00
Serhiy Storchaka 1c84ac1f55 Issue #20007: HTTPResponse.read(0) no more prematurely closes connection.
Original patch by Simon Sapin.
2013-12-17 21:50:02 +02:00
Georg Brandl bf3f8eb960 Issue #16037: HTTPMessage.readheaders() raises an HTTPException when more than
100 headers are read.  Adapted from patch by Jyrki Pulliainen.
2013-10-27 07:34:48 +01:00
Georg Brandl b89b5df9c9 merge with 3.3 2013-10-27 07:46:09 +01:00
Serhiy Storchaka 48e6a8c88a Issue #18743: Fix references to non-existant "StringIO" module
in docstrings and comments.
2013-08-29 11:39:48 +03:00
Serhiy Storchaka 50254c57cd Issue #18743: Fix references to non-existant "StringIO" module
in docstrings and comments.
2013-08-29 11:35:43 +03:00
Andrew Svetlov 3042b5ebf4 Issue #16658: add missing return to HTTPConnection.send().
Patch by Jeff Knupp
2013-04-12 22:50:42 +03:00
Andrew Svetlov 7b2c8bb833 Issue #16658: add missing return to HTTPConnection.send().
Patch by Jeff Knupp
2013-04-12 22:49:19 +03:00
Serhiy Storchaka daf990f8a7 Issue #16723: httplib.HTTPResponse no longer marked closed when the connection
is automatically closed.
2013-02-06 10:37:19 +02:00
Serhiy Storchaka b6c86fd87f Issue #16723: httplib.HTTPResponse no longer marked closed when the connection
is automatically closed.
2013-02-06 10:35:40 +02:00
Serhiy Storchaka b5b9c8cd40 Issue #16723: httplib.HTTPResponse no longer marked closed when the connection
is automatically closed.
2013-02-06 10:31:57 +02:00
Antoine Pitrou da23259f99 Issue #17107: Test client-side SNI support in urllib.request thanks to the new server-side SNI support in the ssl module.
Initial patch by Daniel Black.
2013-02-05 21:20:51 +01:00
Antoine Pitrou b5032c85af Issue #15633: httplib.HTTPResponse is now mark closed when the server sends less than the advertised Content-Length. 2013-02-02 23:06:22 +01:00
Antoine Pitrou 6a35e18161 Issue #15633: httplib.HTTPResponse is now mark closed when the server sends less than the advertised Content-Length. 2013-02-02 23:04:56 +01:00
Antoine Pitrou beec61ae4e Issue #15633: httplib.HTTPResponse is now mark closed when the server sends less than the advertised Content-Length. 2013-02-02 22:49:34 +01:00
Antoine Pitrou 90e4774558 Issue #16833: In http.client.HTTPConnection, do not concatenate the request headers and body when the payload exceeds 16 KB, since it can consume more memory for no benefit.
Patch by Benno Leslie.
2013-01-02 22:10:47 +01:00
Andrew Svetlov 0832af6628 Issue #16717: get rid of socket.error, replace with OSError 2012-12-18 23:10:48 +02:00
Antoine Pitrou d20e7745ee Issue #16298: In HTTPResponse.read(), close the socket when there is no Content-Length and the incoming stream is finished.
Patch by Eran Rundstein.
2012-12-15 19:22:30 +01:00
Antoine Pitrou 084daa2f74 Issue #16298: In HTTPResponse.read(), close the socket when there is no Content-Length and the incoming stream is finished.
Patch by Eran Rundstein.
2012-12-15 19:11:54 +01:00
Senthil Kumaran d34b57a9a2 merge - Fix Issue14721: Send Content-length: 0 for empty body () in the http.client requests 2012-05-19 16:58:45 +08:00
Senthil Kumaran 5fa4a89601 Fix Issue14721: Send Content-length: 0 for empty body () in the http.client requests 2012-05-19 16:58:09 +08:00
Senthil Kumaran 889ad16e54 httplib test for early eof response. related to Issue13684 2012-04-29 10:21:26 +08:00
Senthil Kumaran 9c29f86a81 httplib test for early eof response. related to Issue13684 2012-04-29 10:20:46 +08:00
Antoine Pitrou f7e7818e24 Issue #13713: fix a regression in HTTP chunked reading after 806cfe39f729
(originally issue #13464: Add a readinto() method to http.client.HTTPResponse)
2012-01-04 18:57:22 +01:00
Antoine Pitrou 38d9643d5e Issue #13464: Add a readinto() method to http.client.HTTPResponse.
Patch by Jon Kuhn.
2011-12-06 22:33:57 +01:00
Petri Lehtinen cc9695643f Issue #10860: Skip the new test if HTTPS is not available 2011-10-26 21:29:54 +03:00
Petri Lehtinen e119c403a1 Issue #10860: Skip the new test if HTTPS is not available 2011-10-26 21:29:15 +03:00
Łukasz Langa 6c4e1aed4b Merged fix for #10860 from 3.2 2011-10-19 02:04:46 +02:00
Łukasz Langa a5a9a9c369 Fixes #10860: Handle empty port after port delimiter in httplib 2011-10-18 21:17:39 +02:00
Victor Stinner c61fae04f6 Merge 3.2: test_httplib removes temporary files 2011-09-21 01:09:29 +02:00
Victor Stinner 18d15cb665 test_httplib removes temporary files 2011-09-21 01:09:04 +02:00
Brett Cannon 252365bab8 Silence the altered state warning about threadgs when running test_httplib. 2011-08-04 22:43:11 -07:00
Senthil Kumaran eb71ad4c71 Fix closes Issue12676 - Invalid identifier used in TypeError message in http.client.
Reported by Popa Claudiu and Patch by Santoso Wijaya.
2011-08-02 18:33:41 +08:00
Raymond Hettinger 7beae8a0d5 Issue 10825: Minor updates to the test suite. 2011-01-06 05:34:17 +00:00
Victor Stinner 04ba966eab test_httplib: fix a DeprecationWarning, assertEquals=>assertEqual 2011-01-04 00:04:46 +00:00
Senthil Kumaran 7bc0d872dd Issue3243 - Support iterable bodies in httplib. Patch contributions by Xuanji Li and Chris AtLee. 2010-12-19 10:49:52 +00:00
Senthil Kumaran 5466bf1c94 Fix Issue6791 - Limit the HTTP header readline with _MAXLENGTH. Patch by Antoine Pitrou 2010-12-18 16:55:23 +00:00
Ezio Melotti b3aedd4862 #9424: Replace deprecated assert* methods in the Python test suite. 2010-11-20 19:04:17 +00:00
Senthil Kumaran 74ebd9e6a3 Fix Issue5111 - Wrap the Ipv6 host with [] in the Host header 2010-11-13 12:27:49 +00:00
Brett Cannon 77b7de6d18 Move test_httplib over to file context managers. 2010-10-29 23:31:11 +00:00
Antoine Pitrou 803e6d670c Issue #9003: http.client.HTTPSConnection, urllib.request.HTTPSHandler and
urllib.request.urlopen now take optional arguments to allow for
server certificate checking, as recommended in public uses of HTTPS.
2010-10-13 10:36:15 +00:00
Senthil Kumaran f580adee27 Remove the debugging print line from the test. 2010-10-04 05:42:58 +00:00
Senthil Kumaran 58d5dbf80b Fix Issue10012 - httplib headers, which are (sometimes mistakenly) int are explicitly cast to str (bytes - in py3k). 2010-10-03 18:22:42 +00:00
Senthil Kumaran 9f8dc4441f Fix Issue8572 - httplib getheader() throws error instead of default 2010-08-02 11:04:58 +00:00
Senthil Kumaran 0b99883547 Merged revisions 81691 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r81691 | senthil.kumaran | 2010-06-04 22:47:09 +0530 (Fri, 04 Jun 2010) | 3 lines

  test verifying the resp object is closed for HEAD response.
........
2010-06-04 17:27:11 +00:00
Senthil Kumaran 71fb6c88a8 Merged revisions 80583 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r80583 | senthil.kumaran | 2010-04-28 22:50:43 +0530 (Wed, 28 Apr 2010) | 3 lines

  Fixed Issue6312 - httplib fails with HEAD requests to pages with "transfer-encoding: chunked"
........
2010-04-28 17:39:48 +00:00
Benjamin Peterson 11dbfd4195 Merged revisions 78417 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r78417 | dirkjan.ochtman | 2010-02-23 22:49:00 -0600 (Tue, 23 Feb 2010) | 1 line

  Issue #7427: improve the representation of httplib.BadStatusLine exceptions.
........
2010-03-21 22:50:04 +00:00
Gregory P. Smith b4066374db Merged revisions 77263-77264 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r77263 | gregory.p.smith | 2010-01-02 17:29:44 -0800 (Sat, 02 Jan 2010) | 4 lines

  Adds an optional source_address parameter to socket.create_connection().

  For use by issue3972.
........
  r77264 | gregory.p.smith | 2010-01-02 18:06:07 -0800 (Sat, 02 Jan 2010) | 5 lines

  issue3972: HTTPConnection and HTTPSConnection now support a
  source_address parameter.

  Also cleans up an annotation in the socket documentation.
........
2010-01-03 03:28:29 +00:00
Antoine Pitrou ead1d62d32 [NOTE: the original bug doesn't exist in py3k but this adds Kirk's tests and fixes
another bug in the process]


Merged revisions 75134 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r75134 | antoine.pitrou | 2009-09-29 19:48:18 +0200 (mar., 29 sept. 2009) | 4 lines

  Issue #6790: Make it possible again to pass an `array.array` to
  `httplib.HTTPConnection.send`. Patch by Kirk McDonald.
........
2009-09-29 18:44:53 +00:00
Benjamin Peterson c9c0f201fe convert old fail* assertions to assert* 2009-06-30 23:06:06 +00:00
Jeremy Hylton 636950f925 Remove special logic that closes HTTPConnection socket on EPIPE.
http://bugs.python.org/issue5542

If the socket is closed, the client has no chance to read the response
from the server.  EPIPE means that it isn't possible to write more
data from the socket, but not that it is impossible to read.

Also, various formatting changes.
2009-03-28 04:34:21 +00:00
Jeremy Hylton 7c1692d587 Replace references to httplib with http.client. 2009-03-27 21:31:03 +00:00
Jeremy Hylton 236654b82d Fix some string encoding issues with entity bodies in HTTP requests.
RFC 2616 says that iso-8859-1 is the default charset for HTTP entity
bodies, but we encoded strings using ascii.  See
http://bugs.python.org/issue5314.  Changed docs and code to use
iso-8859-1.

Also fix some brokenness with passing a file as the body instead of a
string.

Add tests to show that some of this behavior actually works.
2009-03-27 20:24:34 +00:00