41 lines
1.5 KiB
Python
41 lines
1.5 KiB
Python
"""Integration with Python standard library module urllib2: Request class.
|
|
|
|
Copyright 2004-2006 John J Lee <jjl@pobox.com>
|
|
|
|
This code is free software; you can redistribute it and/or modify it
|
|
under the terms of the BSD or ZPL 2.1 licenses (see the file
|
|
COPYING.txt included with the distribution).
|
|
|
|
"""
|
|
|
|
import logging
|
|
|
|
import _rfc3986
|
|
import _sockettimeout
|
|
import _urllib2_fork
|
|
|
|
warn = logging.getLogger("mechanize").warning
|
|
|
|
|
|
class Request(_urllib2_fork.Request):
|
|
def __init__(self, url, data=None, headers={},
|
|
origin_req_host=None, unverifiable=False, visit=None,
|
|
timeout=_sockettimeout._GLOBAL_DEFAULT_TIMEOUT):
|
|
# In mechanize 0.2, the interpretation of a unicode url argument will
|
|
# change: A unicode url argument will be interpreted as an IRI, and a
|
|
# bytestring as a URI. For now, we accept unicode or bytestring. We
|
|
# don't insist that the value is always a URI (specifically, must only
|
|
# contain characters which are legal), because that might break working
|
|
# code (who knows what bytes some servers want to see, especially with
|
|
# browser plugins for internationalised URIs).
|
|
if not _rfc3986.is_clean_uri(url):
|
|
warn("url argument is not a URI "
|
|
"(contains illegal characters) %r" % url)
|
|
_urllib2_fork.Request.__init__(self, url, data, headers)
|
|
self.selector = None
|
|
self.visit = visit
|
|
self.timeout = timeout
|
|
|
|
def __str__(self):
|
|
return "<Request for %s>" % self.get_full_url()
|