【发布时间】:2016-12-20 13:39:53
【问题描述】:
这里我使用请求模块从github下载api信息,代码如下。
# Creation of Github request
# Import requests
import requests
r = requests.get('https://api.github.com/user', auth=('user','pass'))
print(r.status_code)
print(r.headers['content-type'])
print(r.encoding)
print(r.text)
print(r.json())
使用该模块时出现错误
python github.py
Traceback (most recent call last):
File "github.py", line 6, in <module>
r = requests.get('https://api.github.com/user', auth=('user','pass'))
File "/home/ubuntu/.local/lib/python2.7/site-packages/requests/api.py", line 70, in get
return request('get', url, params=params, **kwargs)
File "/home/ubuntu/.local/lib/python2.7/site-packages/requests/api.py", line 56, in request
return session.request(method=method, url=url, **kwargs)
File "/home/ubuntu/.local/lib/python2.7/site-packages/requests/sessions.py", line 488, in request
resp = self.send(prep, **send_kwargs)
File "/home/ubuntu/.local/lib/python2.7/site-packages/requests/sessions.py", line 609, in send
r = adapter.send(request, **kwargs)
File "/home/ubuntu/.local/lib/python2.7/site-packages/requests/adapters.py", line 497, in send
raise SSLError(e, request=request)
requests.exceptions.SSLError: ("bad handshake: Error([('SSL routines', 'ssl3_get_server_certificate', 'certificate verify failed')],)",)
我尝试过的:
用我的身份验证详细信息替换用户名和密码,它给出了以下错误。
401
application/json; charset=utf-8
utf-8
{"message":"Bad credentials","documentation_url":"https://developer.github.com/v3"}
{u'documentation_url': u'https://developer.github.com/v3', u'message': u'Bad credentials'}
尝试在 github 的设置选项卡中使用访问令牌,但没有用。
有什么帮助吗?请帮我解决这个问题。
还要求在我的系统上安装模块。
【问题讨论】:
-
您的密码中是否有反斜杠(会很不幸!)
-
certificate verify failed表示通过 HTTPS(而非 HTTP)获取数据时的自签名证书或错误证书。尝试将您的网址更改为http://或修复您的证书。我刚刚注意到您正在获取针对github.com的数据,您之间有代理吗? -
您的客户端似乎无法验证服务器证书
-
这可能是 SNI 问题,您可以尝试更新请求吗?
pip install -U requests[security] -
为什么不使用 Github API 客户端之一?
标签: python python-2.7 python-3.x python-requests