MCPcopy
hub / github.com/tornadoweb/tornado / run

Method run

tornado/simple_httpclient.py:288–447  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

286 )
287
288 async def run(self) -> None:
289 try:
290 self.parsed = urllib.parse.urlsplit(_unicode(self.request.url))
291 if self.parsed.scheme not in ("http", "https"):
292 raise ValueError("Unsupported url scheme: %s" % self.request.url)
293 # urlsplit results have hostname and port results, but they
294 # didn't support ipv6 literals until python 2.7.
295 netloc = self.parsed.netloc
296 if "@" in netloc:
297 userpass, _, netloc = netloc.rpartition("@")
298 host, port = httputil.split_host_and_port(netloc)
299 if port is None:
300 port = 443 if self.parsed.scheme == "https" else 80
301 if re.match(r"^\[.*\]$", host):
302 # raw ipv6 addresses in urls are enclosed in brackets
303 host = host[1:-1]
304 self.parsed_hostname = host # save final host for _on_connect
305
306 if self.request.allow_ipv6 is False:
307 af = socket.AF_INET
308 else:
309 af = socket.AF_UNSPEC
310
311 ssl_options = self._get_ssl_options(self.parsed.scheme)
312
313 source_ip = None
314 if self.request.network_interface:
315 if is_valid_ip(self.request.network_interface):
316 source_ip = self.request.network_interface
317 else:
318 raise ValueError(
319 "Unrecognized IPv4 or IPv6 address for network_interface, got %r"
320 % (self.request.network_interface,)
321 )
322
323 if self.request.connect_timeout and self.request.request_timeout:
324 timeout = min(
325 self.request.connect_timeout, self.request.request_timeout
326 )
327 elif self.request.connect_timeout:
328 timeout = self.request.connect_timeout
329 elif self.request.request_timeout:
330 timeout = self.request.request_timeout
331 else:
332 timeout = 0
333 if timeout:
334 self._timeout = self.io_loop.add_timeout(
335 self.start_time + timeout,
336 functools.partial(self._on_timeout, "while connecting"),
337 )
338 stream = await self.tcp_client.connect(
339 host,
340 port,
341 af=af,
342 ssl_options=ssl_options,
343 max_buffer_size=self.max_buffer_size,
344 source_ip=source_ip,
345 )

Callers 1

__init__Method · 0.95

Calls 14

_get_ssl_optionsMethod · 0.95
_remove_timeoutMethod · 0.95
_create_connectionMethod · 0.95
_write_bodyMethod · 0.95
_handle_exceptionMethod · 0.95
is_valid_ipFunction · 0.90
add_timeoutMethod · 0.80
matchMethod · 0.45
connectMethod · 0.45
closeMethod · 0.45
set_close_callbackMethod · 0.45
getMethod · 0.45

Tested by

no test coverage detected