使用请求模块的 Http Post 请求超过最大重试次数并且证书验证失败
Max retries exceeded and Certificate Verify Failed in Http Post Request in Python using requests Module
我正在通过 Python 中的请求模块发送 POST Http 请求。但是一些 HTTPSConnectionPool 和 Max Retries 问题即将出现。
我尝试了很多在其他平台上找到的解决方案,例如更新 pyOpenSSL 库、使用连接错误的异常处理、提供大约 5 seconds.But 的睡眠时间都无法解决我的问题。仍然收到连接问题、最大重试次数失败和证书验证失败等错误消息。
在 PostMan 中,相同的 POST url 工作正常,授权类型:无授权。
Header:内容类型:application/json 和授权令牌,在 body 中:json 中的数据。但是 Python 实现相同功能的代码不起作用,即:
import requests
import time
url_api = "POST Url"
header = {
"Content-Type": "application/json",
"Authorization": "AutheticationIDXYZ"
}
payload ={
"name": "python1236",
"description": "python1236"
}
r = requests.post(url = url_api, data = payload,json = header)
time.sleep(3)
r.raise_for_status()
print(r.status_code,r.reason)
预期的结果是它应该 return json 响应但显示错误 "TTPSConnectionPool(host='api.com', port=443): Max retries exceeded with url: /api/v1/projects (Caused by SSLError(SSLError("握手错误:错误([('SSL routines','tls_process_server_certificate' , 'certificate verify failed')])")))"
我的代码或我的方法有什么问题吗?我是 Python API 框架的新手,所以 Flask 可以解决我的问题 case.Any 建议和帮助将不胜感激,谢谢。
您可以像在邮递员中那样禁用 SSL 验证:
r = requests.post(url = url_api, data = payload,json = header, verify = False)
尽管这可能很危险并且肯定不应该在生产代码中使用。为避免这种情况,请考虑安装 API 的证书。
我正在通过 Python 中的请求模块发送 POST Http 请求。但是一些 HTTPSConnectionPool 和 Max Retries 问题即将出现。
我尝试了很多在其他平台上找到的解决方案,例如更新 pyOpenSSL 库、使用连接错误的异常处理、提供大约 5 seconds.But 的睡眠时间都无法解决我的问题。仍然收到连接问题、最大重试次数失败和证书验证失败等错误消息。 在 PostMan 中,相同的 POST url 工作正常,授权类型:无授权。 Header:内容类型:application/json 和授权令牌,在 body 中:json 中的数据。但是 Python 实现相同功能的代码不起作用,即:
import requests
import time
url_api = "POST Url"
header = {
"Content-Type": "application/json",
"Authorization": "AutheticationIDXYZ"
}
payload ={
"name": "python1236",
"description": "python1236"
}
r = requests.post(url = url_api, data = payload,json = header)
time.sleep(3)
r.raise_for_status()
print(r.status_code,r.reason)
预期的结果是它应该 return json 响应但显示错误 "TTPSConnectionPool(host='api.com', port=443): Max retries exceeded with url: /api/v1/projects (Caused by SSLError(SSLError("握手错误:错误([('SSL routines','tls_process_server_certificate' , 'certificate verify failed')])")))"
我的代码或我的方法有什么问题吗?我是 Python API 框架的新手,所以 Flask 可以解决我的问题 case.Any 建议和帮助将不胜感激,谢谢。
您可以像在邮递员中那样禁用 SSL 验证:
r = requests.post(url = url_api, data = payload,json = header, verify = False)
尽管这可能很危险并且肯定不应该在生产代码中使用。为避免这种情况,请考虑安装 API 的证书。