\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 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}

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}


\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.
\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}

\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{getreply()} has been called.
\end{methoddesc}

\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}


\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}
