]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Patch #831747: Add skip_accept_encoding parameter to putrequest.
authorMartin v. Löwis <martin@v.loewis.de>
Wed, 19 Nov 2003 19:51:55 +0000 (19:51 +0000)
committerMartin v. Löwis <martin@v.loewis.de>
Wed, 19 Nov 2003 19:51:55 +0000 (19:51 +0000)
Doc/lib/libhttplib.tex
Lib/httplib.py
Misc/NEWS

index 50b4cf2193f0731e1848965239eb12f789e8e466..8badc71774919a743d358307a4e7ec110eddcf84 100644 (file)
@@ -174,11 +174,16 @@ Send data to the server.  This should be used directly only after the
 \method{getreply()} has been called.
 \end{methoddesc}
 
-\begin{methoddesc}{putrequest}{request, selector}
+\begin{methoddesc}{putrequest}{request, selector\optional{,
+skip\_host\optional{, skip_accept_encoding}}}
 This should be the first call after the connection to the server has
 been made.  It sends a line to the server consisting of the
 \var{request} string, the \var{selector} string, and the HTTP version
-(\code{HTTP/1.1}).
+(\code{HTTP/1.1}).  To disable automatic sending of \code{Host:} or
+\code{Accept-Encoding:} headers (for example to accept additional
+content encodings), specify \var{skip_host} or \var{skip_accept_encoding}
+with non-False values.
+\versionchanged[\var{skip_accept_encoding} argument added]{2.4}
 \end{methoddesc}
 
 \begin{methoddesc}{putheader}{header, argument\optional{, ...}}
index a6ab6471b50c4d72bc924fb4698eafd0f345c7d2..0dfea33285bdb2f3c362891028e84af628a5f27e 100644 (file)
@@ -596,18 +596,21 @@ class HTTPConnection:
         del self._buffer[:]
         self.send(msg)
 
-    def putrequest(self, method, url, skip_host=0):
+    def putrequest(self, method, url, skip_host=0, skip_accept_encoding=0):
         """Send a request to the server.
 
         `method' specifies an HTTP request method, e.g. 'GET'.
         `url' specifies the object being requested, e.g. '/index.html'.
+        `skip_host' if True does not add automatically a 'Host:' header
+        `skip_accept_encoding' if True does not add automatically an
+           'Accept-Encoding:' header
         """
 
         # if a prior response has been completed, then forget about it.
         if self.__response and self.__response.isclosed():
             self.__response = None
 
-        #
+       
         # in certain cases, we cannot issue another request on this connection.
         # this occurs when:
         #   1) we are in the process of sending a request.   (_CS_REQ_STARTED)
@@ -676,7 +679,8 @@ class HTTPConnection:
 
             # we only want a Content-Encoding of "identity" since we don't
             # support encodings such as x-gzip or x-deflate.
-            self.putheader('Accept-Encoding', 'identity')
+            if not skip_accept_encoding:
+                self.putheader('Accept-Encoding', 'identity')
 
             # we can accept "chunked" Transfer-Encodings, but no others
             # NOTE: no TE header implies *only* "chunked"
index 191ef483c3ca44af6c2d4ecbea5e59746348da4d..c19d41774659a7c166b49d99078ad635f18d0b9f 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -116,6 +116,8 @@ Extension modules
 Library
 -------
 
+- httplib.HTTP.putrequest now offers to omit the implicit Accept-Encoding.
+
 - Patch #841977: modulefinder didn't find extension modules in packages
 
 - imaplib.IMAP4.thread was added.