我正在尝试使用Python请求库将android .apk文件发送到API服务。我已成功使用请求和此文件类型提交给另一个服务,但我一直得到:
ConnectionError(MaxConnetryError(“HTTPSConnectionPool(host ='REDACTED',port = 443):使用url:/ upload / app超出最大重试次数(由以下原因引起:[WinError 10054]远程主机强行关闭现有连接) ”,),)
这是负责的代码:
url = "https://website"
files = {'file': open(app, 'rb')}
headers = {'user':'value', 'pass':'value'}
try:
response = requests.post(url, files=files, headers=headers)
jsonResponse = json.loads(response.text)
if 'error' in jsonResponse:
logger.error(jsonResponse['error'])
except Exception as e:
logger.error("Exception when trying to upload app to host")
响应行抛出了上述异常。我使用Chrome Postman扩展程序使用这些完全相同的参数来复制POST请求,它运行正常。我已经使用完全相同的文件格式上传到另一个RESTful服务。此请求与有效的请求之间的唯一区别是,此请求附加了自定义标头以验证POST。在需要编码的意义上,API没有将此规定为身份验证,HTTP和cURL中的示例都将这些值定义为标头或-H。
非常感谢任何帮助!
答案 0 :(得分:0)
所以这确实是一个证书问题。在我的情况下,我能够保持公司内部并连接到另一个URL,但请求库非常惊人,有关于证书的信息:http://docs.python-requests.org/en/latest/user/advanced/?highlight=certs 对于所有意图和目的,这都得到了回答,但也许对后人有用。