python urlopen 怎么同时使用url,参数,header和context?

不落银河之翼
  • 47

问题描述

python urlopen 怎么同时使用url,参数,头信息和context?
原来的代码是这样的:

req = urllib2.Request(url, obj, headers)
opener = urllib2.urlopen(req)

现在出现[SSL: CERTIFICATE_VERIFY_FAILED]的报错

所以我需要使用下面的代码处理报错:

import ssl
import urllib2
context = ssl._create_unverified_context()
print urllib2.urlopen("https://aa.com/", context=context).read()

请问怎么把这个context加入进去?
尝试过 print urllib2.urlopen(url=req, context=context).read()
报错:
HTTP Error 503: Service Unavailable

我使用下面的代码,也是一样报错HTTP Error 503: Service Unavailable

import ssl
ssl._create_default_https_context = ssl._create_unverified_context

调试信息:

Internal Server Error: /deploy/key_list_import/
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/django/core/handlers/base.py", line 149, in get_response
    response = self.process_exception_by_middleware(e, request)
  File "/usr/lib/python2.7/site-packages/django/core/handlers/base.py", line 147, in get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/usr/lib/python2.7/site-packages/django/contrib/auth/decorators.py", line 23, in _wrapped_view
    return view_func(request, *args, **kwargs)
  File "/project/soms/deploy/views.py", line 398, in salt_key_import
    minions,minions_pre = sapi.list_all_key()
  File "/project/soms/deploy/saltapi.py", line 54, in list_all_key
    self.token_id()
  File "/project/soms/deploy/saltapi.py", line 30, in token_id
    content = self.postRequest(obj,prefix='/login')
  File "/project/soms/deploy/saltapi.py", line 42, in postRequest
    opener = urllib2.urlopen(req, context=ssl._create_unverified_context())
  File "/usr/lib64/python2.7/urllib2.py", line 154, in urlopen
    return opener.open(url, data, timeout)
  File "/usr/lib64/python2.7/urllib2.py", line 437, in open
    response = meth(req, response)
  File "/usr/lib64/python2.7/urllib2.py", line 550, in http_response
    'http', request, response, code, msg, hdrs)
  File "/usr/lib64/python2.7/urllib2.py", line 475, in error
    return self._call_chain(*args)
  File "/usr/lib64/python2.7/urllib2.py", line 409, in _call_chain
    result = func(*args)
  File "/usr/lib64/python2.7/urllib2.py", line 558, in http_error_default
    raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
HTTPError: HTTP Error 503: Service Unavailable
回复
阅读 2.7k
1 个回答

503是request错误导致的,检查了request有问题

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏