MCPcopy Create free account
hub / github.com/EasyIME/PIME / run

Method run

python/python3/tornado/simple_httpclient.py:290–449  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

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

Callers 1

__init__Method · 0.95

Calls 15

_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