使用Swagger编辑器,我已经描述了我的API并已下载Swagger Python客户端(基于我的API描述)来测试我的REST服务(在HTTPS上运行Wildfly)。
我在Python客户端附带的configuration.py中看到有以下代码块:
self.verify_ssl = True
我已将此值设置为false(用于测试目的),但我仍然继续收到:
调用PApi时的异常 - > example_response_post:(0) 原因:SSLError [SSL:CERTIFICATE_VERIFY_FAILED]证书验证失败(_ssl.c:590)
使用以下测试客户端时:
# create an instance of the API class
api_instance = swagger_client.PApi()
body = swagger_client.exampleRequestBody("some stuff")
http_client_timeout = 5.4 # float | Set the value of the http request timeout (optional)
try:
# Product Types
api_response = api_instance.example_response_post(body=body)
pprint(api_response)
except ApiException as e:
print "Exception when calling PApi->example_response_post: %s\n" % e
实际上,我不认为这个configuration.py文件曾被加载过。我怎样才能做到这一点?
提前致谢!
答案 0 :(得分:1)
对我来说,临时解决方法是使用http而不是https,您可以在configuration.py中取消设置它,只需为您的主机名写入http:// ....而不是https://。例如: self.host =" http://localhost:8080"
答案 1 :(得分:0)
最好的方法是通过更改您发现的行来禁用SSL验证:
self.verify_ssl = False
但是你需要重新运行swagger API自动生成的设置:
python setup.py install --user
然后您的连接也应该与https一起使用。但请注意,您不会受到中间人攻击的影响。