import shutil
import requests
import json
proxy = {
'user' : 'user',
'pass' : 'password',
'host' : "test.net",
'port' : 8080
}
url = 'https://github.com/timeline.json'
response = requests.get(url,verify=True, proxies={"https" : \
"http://%(user)s:%(pass)s@%(host)s:%(port)d" % proxy})
with open(r'..\test.json','wb') as out_file:
out_file.write(response.text)
print response
我正在尝试使用请求在办公环境中通过代理访问HTTPS链接(例如https://github.com/timeline.json)。
访问HTTP链接似乎工作正常。在HTTPS中获取SSL错误。 请提供代码中缺少的内容。谢谢!
收到错误:
raise SSLError(e)
requests.exceptions.SSLError: [Errno 8] _ssl.c:504: EOF occurred in violation of protocol
答案 0 :(得分:0)
我使用的是您提供的几乎相同的代码,并搜索了代理服务器。一切都很好。
尝试查看文档here requests proxies。请注意,Github已弃用https://github.com/timeline.json,请尝试https://api.github.com/events
根据文件: 要在代理中使用HTTP Basic Auth,请使用http://user:password@host/语法:
proxies = {
"http": "http://user:pass@10.10.1.10:3128/",
}
你最后错过了/
吗?试一试。
import requests
url = 'https://api.github.com/events'
proxy = {
"http" : "http://211.162.xxx.xxx:80"
}
response = requests.get(url, verify=True, proxies=proxy)
print response.status_code
if response.status_code == requests.codes.ok:
response.encoding = 'utf-8'
jsontxt = response.json()
print jsontxt