def __init__(self, uri):
# type: (Union[Text, SplitResult]) -> None
super(HttpAdapter, self).__init__()
if isinstance(uri, text_type):
uri = compat.urllib_parse.urlsplit(uri) # type: SplitResult
if uri.scheme not in self.supported_protocols:
raise with_context(
exc = InvalidUri('Unsupported protocol {protocol!r}.'.format(
protocol = uri.scheme,
)),
context = {
'uri': uri,
},
)
if not uri.hostname:
raise with_context(
exc = InvalidUri(
'Empty hostname in URI {uri!r}.'.format(
uri = uri.geturl(),
),
),
context = {
'uri': uri,
},
)
try:
# noinspection PyStatementEffect
uri.port
except ValueError:
raise with_context(
exc = InvalidUri(
'Non-numeric port in URI {uri!r}.'.format(
uri = uri.geturl(),
),
),
context = {
'uri': uri,
},
)
self.uri = uri
评论列表
文章目录