我们公司最近有个需求想从 aruba Airwave api 获取数据。对方公司给我提供了一个例子使用 curl 实现的,下面是例子:
curl -k -c /tmp/cjar -d "credential_0=admin" -d "credential_1=admin" -d "destination=/" -d "login=Log In" https://10.162.117.19/LOGIN
curl -k -b /tmp/cjar --output /tmp/ap_detail.xml https://10.162.117.19/ap_detail.xml
我想用 ruby 实现,于是安装了 Mechanize,但是由于对方服务是 https,我也参照网上例子加了 SSL 设置,代码如下:
a= Mechanize.new {|a| a.ssl_version,a.verify_mode="SSLv3",OpenSSL::SSL::VERIFY_NONE}
但是 get 的时候还会提示:
OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=SSLv3 read server hello A: sslv3 alert handshake failure
请大家帮我看看如何把 curl 版的例子写成 ruby 脚本!!!
还有问题就是我用https://github.com/Mechanize,没有制定SSL版本什么,直接使用这个网址测试
Mechanize.new.get("https://github.com/")
Mechanize 就返回了结果。为什么同样是 https 服务,有的就直接可以 get 有的就不行?
我对 openssl 了解太少啊!希望大家指教!