Swagger - Python客户端 - 禁用SSL验证

时间:2016-11-04 18:55:09

标签: python rest ssl swagger

使用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文件曾被加载过。我怎样才能做到这一点?

提前致谢!

2 个答案:

答案 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一起使用。但请注意,您不会受到中间人攻击的影响。