Commit 0af2f630 authored by Guido van Rossum's avatar Guido van Rossum

Document how to make a POST request with urlopen().

Change the argument name for quote() and quote_plus() to safe (which
matches the implementation).

Add doc for the *new* function urlencode().
parent 810a3396
...@@ -15,7 +15,7 @@ operations are available. ...@@ -15,7 +15,7 @@ operations are available.
It defines the following public functions: It defines the following public functions:
\begin{funcdesc}{urlopen}{url} \begin{funcdesc}{urlopen}{url\optional{, data}}
Open a network object denoted by a URL for reading. If the URL does Open a network object denoted by a URL for reading. If the URL does
not have a scheme identifier, or if it has \file{file:} as its scheme not have a scheme identifier, or if it has \file{file:} as its scheme
identifier, this opens a local file; otherwise it opens a socket to a identifier, this opens a local file; otherwise it opens a socket to a
...@@ -25,7 +25,9 @@ is raised. If all went well, a file-like object is returned. This ...@@ -25,7 +25,9 @@ is raised. If all went well, a file-like object is returned. This
supports the following methods: \method{read()}, \method{readline()}, supports the following methods: \method{read()}, \method{readline()},
\method{readlines()}, \method{fileno()}, \method{close()} and \method{readlines()}, \method{fileno()}, \method{close()} and
\method{info()}. \method{info()}.
Except for the last one, these methods have the same interface as for
Except for the \method{info()} method,
these methods have the same interface as for
file objects --- see section \ref{bltin-file-objects} in this file objects --- see section \ref{bltin-file-objects} in this
manual. (It is not a built-in file object, however, so it can't be manual. (It is not a built-in file object, however, so it can't be
used at those few places where a true built-in file object is used at those few places where a true built-in file object is
...@@ -36,6 +38,13 @@ The \method{info()} method returns an instance of the class ...@@ -36,6 +38,13 @@ The \method{info()} method returns an instance of the class
server, if the protocol uses such headers (currently the only server, if the protocol uses such headers (currently the only
supported protocol that uses this is HTTP). See the description of supported protocol that uses this is HTTP). See the description of
the \module{mimetools}\refstmodindex{mimetools} module. the \module{mimetools}\refstmodindex{mimetools} module.
If the \var{url} uses the \file{http:} scheme identifier, the optional
\var{data} argument may be given to specify a \code{POST} request
(normally the request type is \code{GET}). The \var{data} argument
must in standard \file{application/x-www-form-urlencoded} format;
see the \function{urlencode()} function below.
\end{funcdesc} \end{funcdesc}
\begin{funcdesc}{urlretrieve}{url} \begin{funcdesc}{urlretrieve}{url}
...@@ -55,18 +64,19 @@ Clear the cache that may have been built up by previous calls to ...@@ -55,18 +64,19 @@ Clear the cache that may have been built up by previous calls to
\function{urlretrieve()}. \function{urlretrieve()}.
\end{funcdesc} \end{funcdesc}
\begin{funcdesc}{quote}{string\optional{, addsafe}} \begin{funcdesc}{quote}{string\optional{, safe}}
Replace special characters in \var{string} using the \samp{\%xx} escape. Replace special characters in \var{string} using the \samp{\%xx} escape.
Letters, digits, and the characters \character{_,.-} are never quoted. Letters, digits, and the characters \character{_,.-} are never quoted.
The optional \var{addsafe} parameter specifies additional characters The optional \var{safe} parameter specifies additional characters
that should not be quoted --- its default value is \code{'/'}. that should not be quoted --- its default value is \code{'/'}.
Example: \code{quote('/\~connolly/')} yields \code{'/\%7econnolly/'}. Example: \code{quote('/\~connolly/')} yields \code{'/\%7econnolly/'}.
\end{funcdesc} \end{funcdesc}
\begin{funcdesc}{quote_plus}{string\optional{, addsafe}} \begin{funcdesc}{quote_plus}{string\optional{, safe}}
Like \function{quote()}, but also replaces spaces by plus signs, as Like \function{quote()}, but also replaces spaces by plus signs, as
required for quoting HTML form values. required for quoting HTML form values. Plus signs in the original
string are escaped unless they are included in \var{safe}.
\end{funcdesc} \end{funcdesc}
\begin{funcdesc}{unquote}{string} \begin{funcdesc}{unquote}{string}
...@@ -80,6 +90,15 @@ Like \function{unquote()}, but also replaces plus signs by spaces, as ...@@ -80,6 +90,15 @@ Like \function{unquote()}, but also replaces plus signs by spaces, as
required for unquoting HTML form values. required for unquoting HTML form values.
\end{funcdesc} \end{funcdesc}
\begin{funcdesc}{urlencode}{dict}
Convert a dictionary to a ``url-encoded'' string, suitable to pass to
\function{urlopen()} above as the optional \var{data} argument. This
is useful to pass a dictionary of form fields to a \code{POST}
request. The resulting string is a series of \var{key}=\var{value}
pairs separated by \code{&} characters, where both \var{key} and
\var{value} are quoted using \function{quote_plus()} above.
\end{funcdesc}
Restrictions: Restrictions:
\begin{itemize} \begin{itemize}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment