Python Glossary Русский

all Python 3urllib.requestterm

urllib.request.Request

opening URLs

A description of an HTTP request: URL, body, headers and method. Pass it to urlopen() when a plain URL is not enough.

Syntax

urllib.request.Request(url, data=None, headers={}, method=None)

The method is chosen for you: GET without data, POST with data, anything else via method='PUT'. data must be bytes: a str raises TypeError at send time. Header names are stored through str.capitalize(): 'user-agent' becomes 'User-agent', so get_header('User-Agent') returns None. Creating a Request touches no network — the request is sent only by urlopen().

Examples

import urllib.parse, urllib.request
data = urllib.parse.urlencode({'q': 'python'}).encode('ascii')
req = urllib.request.Request('http://example.com/search', data=data,
                             headers={'user-agent': 'demo'})
print(req.get_method(), req.host, req.selector)  # → POST example.com /search
print(req.header_items())  # → [('User-agent', 'demo')]
print(req.get_header('User-Agent'), req.get_header('User-agent'))  # → None demo
import urllib.request
req = urllib.request.Request('http://example.com/item/1', method='DELETE')
print(req.get_method(), req.full_url)  # → DELETE http://example.com/item/1

See also

Open in the full glossarydocs.python.orgReport an inaccuracy