本文整理汇总了Python中tornado.httpclient.HTTPRequest.proxy_host方法的典型用法代码示例。如果您正苦于以下问题:Python HTTPRequest.proxy_host方法的具体用法?Python HTTPRequest.proxy_host怎么用?Python HTTPRequest.proxy_host使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类tornado.httpclient.HTTPRequest
的用法示例。
在下文中一共展示了HTTPRequest.proxy_host方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: __call__
# 需要导入模块: from tornado.httpclient import HTTPRequest [as 别名]
# 或者: from tornado.httpclient.HTTPRequest import proxy_host [as 别名]
def __call__(self, msg, out_stream):
"""
Work on the current `DataMessage` and send the result to `out_stream`.
"""
# prepare the HTTPHeaders
headers = prepare_headers(msg)
last_modified = None
if msg.curi.req_header:
# check if we have a date when the page was last crawled
if "Last-Modified" in msg.curi.req_header:
last_modified = deserialize_date_time(
msg.curi.req_header["Last-Modified"])
# check if we have username and password present
auth_username = None
auth_password = None
if msg.curi.optional_vars and \
CURI_SITE_USERNAME in msg.curi.optional_vars and \
CURI_SITE_PASSWORD in msg.curi.optional_vars:
auth_username = msg.curi.optional_vars[CURI_SITE_USERNAME]
auth_password = msg.curi.optional_vars[CURI_SITE_PASSWORD]
# create the request
request = HTTPRequest(msg.curi.effective_url,
method="GET",
headers=headers,
auth_username=auth_username,
auth_password=auth_password,
if_modified_since=last_modified,
follow_redirects=self._follow_redirects,
max_redirects=self._max_redirects,
user_agent=self._user_agent,
request_timeout = self._request_timeout,
connect_timeout = self._connect_timeout,
validate_cert = self._validate_cert)
if hasattr(self, '_proxy_configuration'):
request.proxy_host = self._proxy_configuration['host']
request.proxy_port = self._proxy_configuration['port']
request.proxy_username = \
self._proxy_configuration.get('user', None)
request.proxy_password = \
self._proxy_configuration.get('password', None)
LOG.info("proc.fetch::request for %s" % msg.curi.url)
self._client.fetch(request, handle_response(msg, out_stream))
示例2: get
# 需要导入模块: from tornado.httpclient import HTTPRequest [as 别名]
# 或者: from tornado.httpclient.HTTPRequest import proxy_host [as 别名]
def get(self):
content = self.get_query_argument('chl', strip=False)
url = 'https://chart.googleapis.com/chart?cht=qr&chs=%dx%d&chl=%s&chld=|0'\
% (200, 200, escape.url_escape('ss://' + content, plus=False))
request = HTTPRequest(url)
if options.debug:
logging.debug("qrcode url: " + url)
request.proxy_host = '127.0.0.1'
request.proxy_port = 8123
client = curl_httpclient.CurlAsyncHTTPClient()
else:
client = AsyncHTTPClient()
response = yield client.fetch(request)
self.write_png(response.body)
示例3: request
# 需要导入模块: from tornado.httpclient import HTTPRequest [as 别名]
# 或者: from tornado.httpclient.HTTPRequest import proxy_host [as 别名]
def request(self, method, url, query_params=None, headers=None,
body=None, post_params=None, _preload_content=True, _request_timeout=None):
"""
:param method: http request method
:param url: http request url
:param query_params: query parameters in the url
:param headers: http request headers
:param body: request json body, for `application/json`
:param post_params: request post parameters,
`application/x-www-form-urlencoded`
and `multipart/form-data`
:param _preload_content: this is a non-applicable field for the AiohttpClient.
:param _request_timeout: timeout setting for this request. If one number provided, it will be total request
timeout. It can also be a pair (tuple) of (connection, read) timeouts.
"""
method = method.upper()
assert method in ['GET', 'HEAD', 'DELETE', 'POST', 'PUT', 'PATCH', 'OPTIONS']
if post_params and body:
raise ValueError(
"body parameter cannot be used with post_params parameter."
)
request = HTTPRequest(url)
request.ssl_context = self.ssl_context
request.proxy_host = self.proxy_host
request.proxy_port = self.proxy_port
request.method = method
if headers:
request.headers = headers
if 'Content-Type' not in headers:
request.headers['Content-Type'] = 'application/json'
request.request_timeout = _request_timeout or 5 * 60
post_params = post_params or {}
if query_params:
request.url += '?' + urlencode(query_params)
# For `POST`, `PUT`, `PATCH`, `OPTIONS`, `DELETE`
if method in ['POST', 'PUT', 'PATCH', 'OPTIONS', 'DELETE']:
if re.search('json', headers['Content-Type'], re.IGNORECASE):
if body:
body = json.dumps(body)
request.body = body
elif headers['Content-Type'] == 'application/x-www-form-urlencoded':
request.body = urlencode(post_params)
# TODO: transform to multipart form
elif headers['Content-Type'] == 'multipart/form-data':
request.body = encode_multipart_formdata(post_params)
# Pass a `bytes` parameter directly in the body to support
# other content types than Json when `body` argument is provided
# in serialized form
elif isinstance(body, bytes):
request.body = body
else:
# Cannot generate the request from given parameters
msg = """Cannot prepare a request message for provided arguments.
Please check that your arguments match declared content type."""
raise ApiException(status=0, reason=msg)
r = yield self.pool_manager.fetch(request)
r = RESTResponse(r, r.body)
# log response body
logger.debug("response body: %s", r.data)
if not 200 <= r.status <= 299:
raise ApiException(http_resp=r)
return r