ruby中的授权和从api获取数据

ruby中的授权和从api获取数据,ruby,authentication,Ruby,Authentication,我试图点击一个API来获取值,但是API提示我进行身份验证,我应该提供用户名和密码。 如果我尝试使用其他API,我就能够获得数据。想知道如何进行这种身份验证。我对Ruby很陌生,我就是这样做的: require 'open-uri' require 'json' result = JSON.parse(open("http://api.geonames.org/searchJSON?q=london&maxRows=10&username=demo").read) puts "

我试图点击一个API来获取值,但是API提示我进行身份验证,我应该提供用户名和密码。 如果我尝试使用其他API,我就能够获得数据。想知道如何进行这种身份验证。我对Ruby很陌生,我就是这样做的:

require 'open-uri'
require 'json'

result = JSON.parse(open("http://api.geonames.org/searchJSON?q=london&maxRows=10&username=demo").read)
puts "#{result}"

我对这项服务不太熟悉,但你可以试试

正如@Slicedpan所建议的,您还可以使用
open
s
选项

如果出现SSL错误,请查看以下内容:

错误 ---您是否看到其中一条错误消息

openssl::ssl::sslerror: ssl_connect returned=1 errno=0 state=sslv3 read server certificate b: certificate verify failed

could not load openssl. you must recompile ruby with openssl support or change the sources in your gemfile from 'https' to 'http'.
有关使用rvm使用openssl进行编译的说明,请访问 rvm.io/packages/openssl

使用RVM修复SSL证书 ---RVM的最新版本包括一个实用程序,用于诊断和解决由过时的 证书文件。有关详细信息,请参阅文章 指示和建议。RVM网站解释道

如果已安装RVM,请尝试以下操作:

$ rvm -v
# rvm 1.19.1 (stable)
$ rvm osx-ssl-certs status all
# Certificates for...
$ rvm osx-ssl-certs update all
# Updating certificates...

我对这项服务不太熟悉,但你可以试试

正如@Slicedpan所建议的,您还可以使用
open
s
选项

如果出现SSL错误,请查看以下内容:

错误 ---您是否看到其中一条错误消息

openssl::ssl::sslerror: ssl_connect returned=1 errno=0 state=sslv3 read server certificate b: certificate verify failed

could not load openssl. you must recompile ruby with openssl support or change the sources in your gemfile from 'https' to 'http'.
有关使用rvm使用openssl进行编译的说明,请访问 rvm.io/packages/openssl

使用RVM修复SSL证书 ---RVM的最新版本包括一个实用程序,用于诊断和解决由过时的 证书文件。有关详细信息,请参阅文章 指示和建议。RVM网站解释道

如果已安装RVM,请尝试以下操作:

$ rvm -v
# rvm 1.19.1 (stable)
$ rvm osx-ssl-certs status all
# Certificates for...
$ rvm osx-ssl-certs update all
# Updating certificates...

我对这项服务不太熟悉,但你可以试试

正如@Slicedpan所建议的,您还可以使用
open
s
选项

如果出现SSL错误,请查看以下内容:

错误 ---您是否看到其中一条错误消息

openssl::ssl::sslerror: ssl_connect returned=1 errno=0 state=sslv3 read server certificate b: certificate verify failed

could not load openssl. you must recompile ruby with openssl support or change the sources in your gemfile from 'https' to 'http'.
有关使用rvm使用openssl进行编译的说明,请访问 rvm.io/packages/openssl

使用RVM修复SSL证书 ---RVM的最新版本包括一个实用程序,用于诊断和解决由过时的 证书文件。有关详细信息,请参阅文章 指示和建议。RVM网站解释道

如果已安装RVM,请尝试以下操作:

$ rvm -v
# rvm 1.19.1 (stable)
$ rvm osx-ssl-certs status all
# Certificates for...
$ rvm osx-ssl-certs update all
# Updating certificates...

我对这项服务不太熟悉,但你可以试试

正如@Slicedpan所建议的,您还可以使用
open
s
选项

如果出现SSL错误,请查看以下内容:

错误 ---您是否看到其中一条错误消息

openssl::ssl::sslerror: ssl_connect returned=1 errno=0 state=sslv3 read server certificate b: certificate verify failed

could not load openssl. you must recompile ruby with openssl support or change the sources in your gemfile from 'https' to 'http'.
有关使用rvm使用openssl进行编译的说明,请访问 rvm.io/packages/openssl

使用RVM修复SSL证书 ---RVM的最新版本包括一个实用程序,用于诊断和解决由过时的 证书文件。有关详细信息,请参阅文章 指示和建议。RVM网站解释道

如果已安装RVM,请尝试以下操作:

$ rvm -v
# rvm 1.19.1 (stable)
$ rvm osx-ssl-certs status all
# Certificates for...
$ rvm osx-ssl-certs update all
# Updating certificates...


服务如何进行身份验证?它是基本HTTP还是基于cookie?@Slicedpan:它的基本HTTP。服务如何进行身份验证?它是基本HTTP还是基于cookie?@Slicedpan:它的基本HTTP。服务如何进行身份验证?它是基本HTTP还是基于cookie?@Slicedpan:它的基本HTTP。服务如何进行身份验证?它是基本HTTP还是基于cookie?@Slicedpan:它的基本HTTP。或者,打开函数接受HTTP基本身份验证的参数,请参阅文档@urigassi我收到此错误我的一个API,但它适用于其他API<代码>连接:SSL_connect returned=1 errno=0 state=SSLv3读取服务器证书B:证书验证失败(OpenSSL::SSL::SSLError)添加了SSL失败的解释另外,open函数接受HTTP基本身份验证的参数,请参阅文档@urigassi我收到此错误我的一个API,但它适用于其他API<代码>连接:SSL_connect returned=1 errno=0 state=SSLv3读取服务器证书B:证书验证失败(OpenSSL::SSL::SSLError)添加了SSL失败的解释另外,open函数接受HTTP基本身份验证的参数,请参阅文档@urigassi我收到此错误我的一个API,但它适用于其他API<代码>连接:SSL_connect returned=1 errno=0 state=SSLv3读取服务器证书B:证书验证失败(OpenSSL::SSL::SSLError)添加了SSL失败的解释另外,open函数接受HTTP基本身份验证的参数,请参阅文档@urigassi我收到此错误我的一个API,但它适用于其他API<代码>连接:SSL\u connect返回=1 errno=0 state=SSLv3读取服务器证书B:证书验证失败(OpenSSL::SSL::SSLError)添加了SSL失败的解释