\section{\module{httplib} ---
         HTTP protocol client}

\declaremodule{standard}{httplib}
\modulesynopsis{HTTP and HTTPS protocol client (requires sockets).}

\indexii{HTTP}{protocol}
\index{HTTP!\module{httplib} (standard module)}

This module defines classes which implement the client side of the
HTTP and HTTPS protocols.  It is normally not used directly --- the
module \refmodule{urllib}\refstmodindex{urllib} uses it to handle URLs
that use HTTP and HTTPS.

\begin{notice}
  HTTPS support is only available if the \refmodule{socket} module was
  compiled with SSL support.
\end{notice}

\begin{notice}
  The public interface for this module changed substantially in Python
  2.0.  The \class{HTTP} class is retained only for backward
  compatibility with 1.5.2.  It should not be used in new code.  Refer
  to the online docstrings for usage.
\end{notice}

The module provides the following classes:

\begin{classdesc}{HTTPConnection}{host\optional{, port}}
An \class{HTTPConnection} instance represents one transaction with an HTTP
server.  It should be instantiated passing it a host and optional port number.
If no port number is passed, the port is extracted from the host string if it
has the form \code{\var{host}:\var{port}}, else the default HTTP port (80) is
used.  For example, the following calls all create instances that connect to
the server at the same host and port:

\begin{verbatim}
>>> h1 = httplib.HTTPConnection('www.cwi.nl')
>>> h2 = httplib.HTTPConnection('www.cwi.nl:80')
>>> h3 = httplib.HTTPConnection('www.cwi.nl', 80)
\end{verbatim}
\versionadded{2.0}
\end{classdesc}

\begin{classdesc}{HTTPSConnection}{host\optional{, port, key_file, cert_file}}
A subclass of \class{HTTPConnection} that uses SSL for communication with
secure servers.  Default port is \code{443}.
\var{key_file} is
the name of a PEM formatted file that contains your private
key. \var{cert_file} is a PEM formatted certificate chain file.

\warning{This does not do any certificate verification!}

\versionadded{2.0}
\end{classdesc}

\begin{classdesc}{HTTPResponse}{sock\optional{, debuglevel=0}\optional{, strict=0}}
Class whose instances are returned upon successful connection.  Not
instantiated directly by user.
\versionadded{2.0}
\end{classdesc}

The following exceptions are raised as appropriate:

\begin{excdesc}{HTTPException}
The base class of the other exceptions in this module.  It is a
subclass of \exception{Exception}.
\versionadded{2.0}
\end{excdesc}

\begin{excdesc}{NotConnected}
A subclass of \exception{HTTPException}.
\versionadded{2.0}
\end{excdesc}

\begin{excdesc}{InvalidURL}
A subclass of \exception{HTTPException}, raised if a port is given and is
either non-numeric or empty.
\versionadded{2.3}
\end{excdesc}

\begin{excdesc}{UnknownProtocol}
A subclass of \exception{HTTPException}.
\versionadded{2.0}
\end{excdesc}

\begin{excdesc}{UnknownTransferEncoding}
A subclass of \exception{HTTPException}.
\versionadded{2.0}
\end{excdesc}

\begin{excdesc}{UnimplementedFileMode}
A subclass of \exception{HTTPException}.
\versionadded{2.0}
\end{excdesc}

\begin{excdesc}{IncompleteRead}
A subclass of \exception{HTTPException}.
\versionadded{2.0}
\end{excdesc}

\begin{excdesc}{ImproperConnectionState}
A subclass of \exception{HTTPException}.
\versionadded{2.0}
\end{excdesc}

\begin{excdesc}{CannotSendRequest}
A subclass of \exception{ImproperConnectionState}.
\versionadded{2.0}
\end{excdesc}

\begin{excdesc}{CannotSendHeader}
A subclass of \exception{ImproperConnectionState}.
\versionadded{2.0}
\end{excdesc}

\begin{excdesc}{ResponseNotReady}
A subclass of \exception{ImproperConnectionState}.
\versionadded{2.0}
\end{excdesc}

\begin{excdesc}{BadStatusLine}
A subclass of \exception{HTTPException}.  Raised if a server responds with a
HTTP status code that we don't understand.
\versionadded{2.0}
\end{excdesc}

The constants defined in this module are:

\begin{datadesc}{HTTP_PORT}
  The default port for the HTTP protocol (always \code{80}).
\end{datadesc}

\begin{datadesc}{HTTPS_PORT}
  The default port for the HTTPS protocol (always \code{443}).
\end{datadesc}

and also the following constants for integer status codes:

\begin{tableiii}{l|c|l}{constant}{Constant}{Value}{Definition}
  \lineiii{CONTINUE}{\code{100}}
    {HTTP/1.1, \ulink{RFC 2616, Section 10.1.1}
      {http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.1.1}}
  \lineiii{SWITCHING_PROTOCOLS}{\code{101}}
    {HTTP/1.1, \ulink{RFC 2616, Section 10.1.2}
      {http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.1.2}}
  \lineiii{PROCESSING}{\code{102}}
    {WEBDAV, \ulink{RFC 2518, Section 10.1}
      {http://www.webdav.org/specs/rfc2518.html#STATUS_102}}

  \lineiii{OK}{\code{200}}
    {HTTP/1.1, \ulink{RFC 2616, Section 10.2.1}
      {http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1}}
  \lineiii{CREATED}{\code{201}}
    {HTTP/1.1, \ulink{RFC 2616, Section 10.2.2}
      {http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.2}}
  \lineiii{ACCEPTED}{\code{202}}
    {HTTP/1.1, \ulink{RFC 2616, Section 10.2.3}
      {http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.3}}
  \lineiii{NON_AUTHORITATIVE_INFORMATION}{\code{203}}
    {HTTP/1.1, \ulink{RFC 2616, Section 10.2.4}
      {http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.4}}
  \lineiii{NO_CONTENT}{\code{204}}
    {HTTP/1.1, \ulink{RFC 2616, Section 10.2.5}
      {http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.5}}
  \lineiii{RESET_CONTENT}{\code{205}}
    {HTTP/1.1, \ulink{RFC 2616, Section 10.2.6}
      {http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.6}}
  \lineiii{PARTIAL_CONTENT}{\code{206}}
    {HTTP/1.1, \ulink{RFC 2616, Section 10.2.7}
      {http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.7}}
  \lineiii{MULTI_STATUS}{\code{207}}
    {WEBDAV \ulink{RFC 2518, Section 10.2}
      {http://www.webdav.org/specs/rfc2518.html#STATUS_207}}
  \lineiii{IM_USED}{\code{226}}
    {Delta encoding in HTTP, \rfc{3229}, Section 10.4.1}

  \lineiii{MULTIPLE_CHOICES}{\code{300}}
    {HTTP/1.1, \ulink{RFC 2616, Section 10.3.1}
      {http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.1}}
  \lineiii{MOVED_PERMANENTLY}{\code{301}}
    {HTTP/1.1, \ulink{RFC 2616, Section 10.3.2}
      {http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.2}}
  \lineiii{FOUND}{\code{302}}
    {HTTP/1.1, \ulink{RFC 2616, Section 10.3.3}
      {http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.3}}
  \lineiii{SEE_OTHER}{\code{303}}
    {HTTP/1.1, \ulink{RFC 2616, Section 10.3.4}
      {http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.4}}
  \lineiii{NOT_MODIFIED}{\code{304}}
    {HTTP/1.1, \ulink{RFC 2616, Section 10.3.5}
      {http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.5}}
  \lineiii{USE_PROXY}{\code{305}}
    {HTTP/1.1, \ulink{RFC 2616, Section 10.3.6}
      {http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.6}}
  \lineiii{TEMPORARY_REDIRECT}{\code{307}}
    {HTTP/1.1, \ulink{RFC 2616, Section 10.3.8}
      {http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.8}}

  \lineiii{BAD_REQUEST}{\code{400}}
    {HTTP/1.1, \ulink{RFC 2616, Section 10.4.1}
      {http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1}}
  \lineiii{UNAUTHORIZED}{\code{401}}
    {HTTP/1.1, \ulink{RFC 2616, Section 10.4.2}
      {http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.2}}
  \lineiii{PAYMENT_REQUIRED}{\code{402}}
    {HTTP/1.1, \ulink{RFC 2616, Section 10.4.3}
      {http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.3}}
  \lineiii{FORBIDDEN}{\code{403}}
    {HTTP/1.1, \ulink{RFC 2616, Section 10.4.4}
      {http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.4}}
  \lineiii{NOT_FOUND}{\code{404}}
    {HTTP/1.1, \ulink{RFC 2616, Section 10.4.5}
      {http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5}}
  \lineiii{METHOD_NOT_ALLOWED}{\code{405}}
    {HTTP/1.1, \ulink{RFC 2616, Section 10.4.6}
      {http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.6}}
  \lineiii{NOT_ACCEPTABLE}{\code{406}}
    {HTTP/1.1, \ulink{RFC 2616, Section 10.4.7}
      {http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.7}}
  \lineiii{PROXY_AUTHENTICATION_REQUIRED}
    {\code{407}}{HTTP/1.1, \ulink{RFC 2616, Section 10.4.8}
      {http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.8}}
  \lineiii{REQUEST_TIMEOUT}{\code{408}}
    {HTTP/1.1, \ulink{RFC 2616, Section 10.4.9}
      {http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.9}}
  \lineiii{CONFLICT}{\code{409}}
    {HTTP/1.1, \ulink{RFC 2616, Section 10.4.10}
      {http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.10}}
  \lineiii{GONE}{\code{410}}
    {HTTP/1.1, \ulink{RFC 2616, Section 10.4.11}
      {http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.11}}
  \lineiii{LENGTH_REQUIRED}{\code{411}}
    {HTTP/1.1, \ulink{RFC 2616, Section 10.4.12}
      {http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.12}}
  \lineiii{PRECONDITION_FAILED}{\code{412}}
    {HTTP/1.1, \ulink{RFC 2616, Section 10.4.13}
      {http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.13}}
  \lineiii{REQUEST_ENTITY_TOO_LARGE}
    {\code{413}}{HTTP/1.1, \ulink{RFC 2616, Section 10.4.14}
      {http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.14}}
  \lineiii{REQUEST_URI_TOO_LONG}{\code{414}}
    {HTTP/1.1, \ulink{RFC 2616, Section 10.4.15}
      {http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.15}}
  \lineiii{UNSUPPORTED_MEDIA_TYPE}{\code{415}}
    {HTTP/1.1, \ulink{RFC 2616, Section 10.4.16}
      {http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.16}}
  \lineiii{REQUESTED_RANGE_NOT_SATISFIABLE}{\code{416}}
    {HTTP/1.1, \ulink{RFC 2616, Section 10.4.17}
      {http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.17}}
  \lineiii{EXPECTATION_FAILED}{\code{417}}
    {HTTP/1.1, \ulink{RFC 2616, Section 10.4.18}
      {http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.18}}
  \lineiii{UNPROCESSABLE_ENTITY}{\code{422}}
    {WEBDAV, \ulink{RFC 2518, Section 10.3}
      {http://www.webdav.org/specs/rfc2518.html#STATUS_422}}
  \lineiii{LOCKED}{\code{423}}
    {WEBDAV \ulink{RFC 2518, Section 10.4}
      {http://www.webdav.org/specs/rfc2518.html#STATUS_423}}
  \lineiii{FAILED_DEPENDENCY}{\code{424}}
    {WEBDAV, \ulink{RFC 2518, Section 10.5}
      {http://www.webdav.org/specs/rfc2518.html#STATUS_424}}
  \lineiii{UPGRADE_REQUIRED}{\code{426}}
    {HTTP Upgrade to TLS, \rfc{2817}, Section 6}

  \lineiii{INTERNAL_SERVER_ERROR}{\code{500}}
    {HTTP/1.1, \ulink{RFC 2616, Section 10.5.1}
      {http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.1}}
  \lineiii{NOT_IMPLEMENTED}{\code{501}}
    {HTTP/1.1, \ulink{RFC 2616, Section 10.5.2}
      {http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.2}}
  \lineiii{BAD_GATEWAY}{\code{502}}
    {HTTP/1.1 \ulink{RFC 2616, Section 10.5.3}
      {http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.3}}
  \lineiii{SERVICE_UNAVAILABLE}{\code{503}}
    {HTTP/1.1, \ulink{RFC 2616, Section 10.5.4}
      {http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.4}}
  \lineiii{GATEWAY_TIMEOUT}{\code{504}}
    {HTTP/1.1 \ulink{RFC 2616, Section 10.5.5}
      {http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.5}}
  \lineiii{HTTP_VERSION_NOT_SUPPORTED}{\code{505}}
    {HTTP/1.1, \ulink{RFC 2616, Section 10.5.6}
      {http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.5.6}}
  \lineiii{INSUFFICIENT_STORAGE}{\code{507}}
    {WEBDAV, \ulink{RFC 2518, Section 10.6}
      {http://www.webdav.org/specs/rfc2518.html#STATUS_507}}
  \lineiii{NOT_EXTENDED}{\code{510}}
    {An HTTP Extension Framework, \rfc{2774}, Section 7}
\end{tableiii}

\subsection{HTTPConnection Objects \label{httpconnection-objects}}

\class{HTTPConnection} instances have the following methods:

\begin{methoddesc}{request}{method, url\optional{, body\optional{, headers}}}
This will send a request to the server using the HTTP request method
\var{method} and the selector \var{url}.  If the \var{body} argument is
present, it should be a string of data to send after the headers are finished.
The header Content-Length is automatically set to the correct value.
The \var{headers} argument should be a mapping of extra HTTP headers to send
with the request.
\end{methoddesc}

\begin{methoddesc}{getresponse}{}
Should be called after a request is sent to get the response from the server.
Returns an \class{HTTPResponse} instance.
\note{Note that you must have read the whole response before you can send a new
request to the server.}
\end{methoddesc}

\begin{methoddesc}{set_debuglevel}{level}
Set the debugging level (the amount of debugging output printed).
The default debug level is \code{0}, meaning no debugging output is
printed.
\end{methoddesc}

\begin{methoddesc}{connect}{}
Connect to the server specified when the object was created.
\end{methoddesc}

\begin{methoddesc}{close}{}
Close the connection to the server.
\end{methoddesc}

As an alternative to using the \method{request()} method described above,
you can also send your request step by step, by using the four functions
below.

\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}).  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{, ...}}
Send an \rfc{822}-style header to the server.  It sends a line to the
server consisting of the header, a colon and a space, and the first
argument.  If more arguments are given, continuation lines are sent,
each consisting of a tab and an argument.
\end{methoddesc}

\begin{methoddesc}{endheaders}{}
Send a blank line to the server, signalling the end of the headers.
\end{methoddesc}

\begin{methoddesc}{send}{data}
Send data to the server.  This should be used directly only after the
\method{endheaders()} method has been called and before
\method{getresponse()} is called.
\end{methoddesc}

\subsection{HTTPResponse Objects \label{httpresponse-objects}}

\class{HTTPResponse} instances have the following methods and attributes:

\begin{methoddesc}{read}{\optional{amt}}
Reads and returns the response body, or up to the next \var{amt} bytes.
\end{methoddesc}

\begin{methoddesc}{getheader}{name\optional{, default}}
Get the contents of the header \var{name}, or \var{default} if there is no
matching header.
\end{methoddesc}

\begin{methoddesc}{getheaders}{}
Return a list of (header, value) tuples. \versionadded{2.4}
\end{methoddesc}

\begin{datadesc}{msg}
  A \class{mimetools.Message} instance containing the response headers.
\end{datadesc}

\begin{datadesc}{version}
  HTTP protocol version used by server.  10 for HTTP/1.0, 11 for HTTP/1.1.
\end{datadesc}

\begin{datadesc}{status}
  Status code returned by server.
\end{datadesc}

\begin{datadesc}{reason}
  Reason phrase returned by server.
\end{datadesc}


\subsection{Examples \label{httplib-examples}}

Here is an example session that uses the \samp{GET} method:

\begin{verbatim}
>>> import httplib
>>> conn = httplib.HTTPConnection("www.python.org")
>>> conn.request("GET", "/index.html")
>>> r1 = conn.getresponse()
>>> print r1.status, r1.reason
200 OK
>>> data1 = r1.read()
>>> conn.request("GET", "/parrot.spam")
>>> r2 = conn.getresponse()
>>> print r2.status, r2.reason
404 Not Found
>>> data2 = r2.read()
>>> conn.close()
\end{verbatim}

Here is an example session that shows how to \samp{POST} requests:

\begin{verbatim}
>>> import httplib, urllib
>>> params = urllib.urlencode({'spam': 1, 'eggs': 2, 'bacon': 0})
>>> headers = {"Content-type": "application/x-www-form-urlencoded",
...            "Accept": "text/plain"}
>>> conn = httplib.HTTPConnection("musi-cal.mojam.com:80")
>>> conn.request("POST", "/cgi-bin/query", params, headers)
>>> response = conn.getresponse()
>>> print response.status, response.reason
200 OK
>>> data = response.read()
>>> conn.close()
\end{verbatim}
