本文整理汇总了Python中urllib.error.HTTPError方法的典型用法代码示例。如果您正苦于以下问题:Python error.HTTPError方法的具体用法?Python error.HTTPError怎么用?Python error.HTTPError使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类urllib.error
的用法示例。
在下文中一共展示了error.HTTPError方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: _http_request
# 需要导入模块: from urllib import error [as 别名]
# 或者: from urllib.error import HTTPError [as 别名]
def _http_request(url, headers=None, time_out=10):
"""Perform an HTTP request and return request"""
log(0, 'Request URL: {url}', url=url)
try:
if headers:
request = Request(url, headers=headers)
else:
request = Request(url)
req = urlopen(request, timeout=time_out)
log(0, 'Response code: {code}', code=req.getcode())
if 400 <= req.getcode() < 600:
raise HTTPError('HTTP %s Error for url: %s' % (req.getcode(), url), response=req)
except (HTTPError, URLError) as err:
log(2, 'Download failed with error {}'.format(err))
if yesno_dialog(localize(30004), '{line1}\n{line2}'.format(line1=localize(30063), line2=localize(30065))): # Internet down, try again?
return _http_request(url, headers, time_out)
return None
return req
示例2: HTML
# 需要导入模块: from urllib import error [as 别名]
# 或者: from urllib.error import HTTPError [as 别名]
def HTML(self, check):
try:
if self.UserAgent != None:
page_html = urlopen(Request(
self.target_url,
headers={"User-Agent":self.UserAgent}),
timeout=self.TimeOut).read().decode("utf-8")
#If not, the default will be used
else:
page_html = urlopen(
self.target_url,
timeout=self.TimeOut).read().decode("utf-8")
except HTTPError:
page_html = "Can't get page source code"
if self.verbose == True:
print(" [+] Source code got from %s" % self.target_url)
print("----START" + "-"*71)
print(page_html)
print("----END" + "-"*73)
return(page_html)
示例3: _make_request
# 需要导入模块: from urllib import error [as 别名]
# 或者: from urllib.error import HTTPError [as 别名]
def _make_request(self, opener, request, timeout=None):
"""Make the API call and return the response. This is separated into
it's own function, so we can mock it easily for testing.
:param opener:
:type opener:
:param request: url payload to request
:type request: urllib.Request object
:param timeout: timeout value or None
:type timeout: float
:return: urllib response
"""
timeout = timeout or self.timeout
try:
return opener.open(request, timeout=timeout)
except HTTPError as err:
exc = handle_error(err)
return exc
示例4: find_cf_issues
# 需要导入模块: from urllib import error [as 别名]
# 或者: from urllib.error import HTTPError [as 别名]
def find_cf_issues(domains):
error_domains = []
for domain in domains:
try:
response = urlopen('http://' + domain)
except HTTPError as e:
if e.code == 403 and 'Bad request' in e.fp.read():
try:
response = urlopen('https://' + domain)
except URLError as e:
if 'handshake' in str(e).lower() or e.code == 403 and 'Bad request' in e.fp.read():
error_domains.append(domain)
except:
pass
except:
pass
return error_domains
# add a domain to CloudFront
示例5: login
# 需要导入模块: from urllib import error [as 别名]
# 或者: from urllib.error import HTTPError [as 别名]
def login(server, username, password, alias) -> None:
data = {
"username": username,
"password": password,
}
try:
with urlopen(f"{server}/_matrix/maubot/v1/auth/login",
data=json.dumps(data).encode("utf-8")) as resp_data:
resp = json.load(resp_data)
config["servers"][server] = resp["token"]
if not config["default_server"]:
print(Fore.CYAN, "Setting", server, "as the default server")
config["default_server"] = server
if alias:
config["aliases"][alias] = server
save_config()
print(Fore.GREEN + "Logged in successfully")
except HTTPError as e:
try:
err = json.load(e)
except json.JSONDecodeError:
err = {}
print(Fore.RED + err.get("error", str(e)) + Fore.RESET)
示例6: binaries_of_product
# 需要导入模块: from urllib import error [as 别名]
# 或者: from urllib.error import HTTPError [as 别名]
def binaries_of_product(self, project, product, repo=None, arch=None):
if repo is None:
repo = self.project.product_repo
if arch is None:
arch = self.project.product_arch
url = self.api.makeurl(['build', project, repo, arch, product])
try:
f = self.api.retried_GET(url)
except HTTPError:
return []
ret = []
root = ET.parse(f).getroot()
for binary in root.findall('binary'):
ret.append(binary.get('filename'))
return ret
示例7: _retried_request
# 需要导入模块: from urllib import error [as 别名]
# 或者: from urllib.error import HTTPError [as 别名]
def _retried_request(self, url, func, data=None):
retry_sleep_seconds = 1
while True:
try:
if data is not None:
return func(url, data=data)
return func(url)
except HTTPError as e:
if 500 <= e.code <= 599:
print('Error {}, retrying {} in {}s'.format(e.code, url, retry_sleep_seconds))
elif e.code == 400 and e.reason == 'service in progress':
print('Service in progress, retrying {} in {}s'.format(url, retry_sleep_seconds))
else:
raise e
time.sleep(retry_sleep_seconds)
# increase sleep time up to one minute to avoid hammering
# the server in case of real problems
if (retry_sleep_seconds % 60):
retry_sleep_seconds += 1
示例8: package_source_hash
# 需要导入模块: from urllib import error [as 别名]
# 或者: from urllib.error import HTTPError [as 别名]
def package_source_hash(apiurl, project, package, revision=None):
query = {}
if revision:
query['rev'] = revision
# Will not catch packages that previous had a link, but no longer do.
if package_source_link_copy(apiurl, project, package):
query['expand'] = 1
try:
url = makeurl(apiurl, ['source', project, package], query)
root = ETL.parse(http_GET(url)).getroot()
except HTTPError as e:
if e.code == 400 or e.code == 404:
# 400: revision not found, 404: package not found.
return None
raise e
if revision and root.find('error') is not None:
# OBS returns XML error instead of HTTP 404 if revision not found.
return None
from osclib.util import sha1_short
return sha1_short(root.xpath('entry[@name!="_link"]/@md5'))
示例9: load_request
# 需要导入模块: from urllib import error [as 别名]
# 或者: from urllib.error import HTTPError [as 别名]
def load_request(self, request_id):
if not _is_int(request_id):
return None
url = makeurl(self.api.apiurl, ['request', str(request_id)])
try:
f = http_GET(url)
except HTTPError:
return None
root = ET.parse(f).getroot()
if root.get('id', None) != str(request_id):
return None
return root
示例10: check_image_bdeps
# 需要导入模块: from urllib import error [as 别名]
# 或者: from urllib.error import HTTPError [as 别名]
def check_image_bdeps(self, project, arch):
for dvd in ('000product:openSUSE-dvd5-dvd-{}'.format(arch), 'Test-DVD-{}'.format(arch)):
try:
url = makeurl(self.api.apiurl, ['build', project, 'images', arch, dvd, '_buildinfo'])
root = ET.parse(http_GET(url)).getroot()
except HTTPError as e:
if e.code == 404:
continue
raise
for bdep in root.findall('bdep'):
if 'name' not in bdep.attrib:
continue
b = bdep.attrib['name']
if b not in self.bin2src:
print("{} not found in bin2src".format(b))
continue
b = self.bin2src[b]
self.pkgdeps[b] = 'MYdvd{}'.format(self.api.rings.index(project))
break
示例11: get_dstrepos
# 需要导入模块: from urllib import error [as 别名]
# 或者: from urllib.error import HTTPError [as 别名]
def get_dstrepos(self, project):
url = osc.core.makeurl(self.apiurl, ('source', project, '_meta'))
try:
root = ET.parse(osc.core.http_GET(url)).getroot()
except HTTPError:
return None
repos = set()
for repo in root.findall('repository'):
name = repo.attrib['name']
if project in REPO_WHITELIST and name not in REPO_WHITELIST[project]:
continue
for node in repo.findall('arch'):
arch = node.text
if project in ARCH_WHITELIST and arch not in ARCH_WHITELIST[project]:
continue
if project in ARCH_BLACKLIST and arch in ARCH_BLACKLIST[project]:
continue
repos.add((name, arch))
return repos
示例12: has_whitelist_warnings
# 需要导入模块: from urllib import error [as 别名]
# 或者: from urllib.error import HTTPError [as 别名]
def has_whitelist_warnings( self, source_project, source_package, target_project, target_package ):
# this checks if this is a submit to an product project and it has warnings for non-whitelisted permissions/files
found_entries = set()
url = osc.core.makeurl(self.apiurl, ['build', target_project])
xml = ET.parse(osc.core.http_GET(url)).getroot()
for f in xml.findall('entry'):
# we check all repos in the source project for errors that exist in the target project
repo = f.attrib['name']
query = { 'last': 1, }
for arch in target_archs(self.apiurl, source_project, repo):
url = osc.core.makeurl(self.apiurl, ['build', source_project, repo, arch, source_package, '_log'], query = query)
try:
result = osc.core.http_GET(url)
contents = str(result.read())
for entry in self.bad_rpmlint_entries:
if (': W: ' + entry in contents) and not (entry in found_entries):
self.logger.info(f'found missing whitelist for warning: {entry}')
found_entries.add(entry)
except HTTPError as e:
self.logger.info('ERROR in URL %s [%s]' % (url, e))
return found_entries
示例13: _filter_packages_by_time
# 需要导入模块: from urllib import error [as 别名]
# 或者: from urllib.error import HTTPError [as 别名]
def _filter_packages_by_time(self, packages):
x = ET.fromstring(self.cached_GET(self.makeurl(['source', self.project, '000product', '_history'], {'limit': '1'})))
producttime = int(x.find('./revision/time').text)
for pkg in packages:
try:
x = ET.fromstring(self.cached_GET(self.makeurl(['source', self.project, pkg, '_history'], {'rev': '1'})))
# catch deleted packages
except HTTPError as e:
if e.code == 404:
continue
raise e
packagetime = int(x.find('./revision/time').text)
# if producttime > packagetime:
# continue
yield pkg
示例14: add_explicit_disable
# 需要导入模块: from urllib import error [as 别名]
# 或者: from urllib.error import HTTPError [as 别名]
def add_explicit_disable(self, wipebinaries=False):
self._init_biarch_packages()
resulturl = self.makeurl(['source', self.project])
result = ET.fromstring(self.cached_GET(resulturl))
for pkg in self.packages:
changed = False
logger.debug("processing %s", pkg)
if not pkg in self.package_metas:
logger.error("%s not found", pkg)
continue
pkgmeta = self.package_metas[pkg]
build = pkgmeta.findall("./build")
if not build:
logger.debug('disable %s for %s', pkg, self.arch)
bn = pkgmeta.find('build')
if bn is None:
bn = ET.SubElement(pkgmeta, 'build')
ET.SubElement(bn, 'disable', { 'arch': self.arch })
changed = True
if changed:
try:
pkgmetaurl = self.makeurl(['source', self.project, pkg, '_meta'])
self.http_PUT(pkgmetaurl, data=ET.tostring(pkgmeta))
if self.caching:
self._invalidate__cached_GET(pkgmetaurl)
if wipebinaries:
self.http_POST(self.makeurl(['build', self.project], {
'cmd': 'wipe',
'arch': self.arch,
'package': pkg }))
except HTTPError as e:
logger.error('failed to update %s: %s', pkg, e)
示例15: _setprio
# 需要导入模块: from urllib import error [as 别名]
# 或者: from urllib.error import HTTPError [as 别名]
def _setprio(self, status, priority):
"""
Set prios for requests that are still in review
:param project: project to check
"""
message = 'raising priority for %s' % status.get('name')
for r in status.findall('missing_reviews/review'):
reqid = r.get('request')
req = osc.core.get_request(self.api.apiurl, reqid)
if req.priority == priority:
continue
query = { 'cmd': 'setpriority', 'priority': priority }
url = osc.core.makeurl(self.api.apiurl, ['request', reqid], query)
print(f"raising priority of {r.get('package')} [{r.get('request')}] to {priority}")
try:
osc.core.http_POST(url, data=message)
except HTTPError as e:
print(e)