当我试图使用HTTParty访问web服务器时,我得到了一个。这是我最初得到的错误。
SSL_connect returned=1 errno=0 state=SSLv3读取服务器证书B:证书验证失败
我试图通过更新默认选项来纠正他的错误。代码在下面。
class Coursera
include HTTParty
base_uri 'https://api.coursera.org/api/catalog.v1/courses'
default_params fields: "smallIcon,shortDescription", q: "search"
format :json
default_options.update(verify: false)
def self.for term
get("", query: { query: term})["elements"]
end
end
然而,这导致了另一个错误,使我感到困惑。
语法错误,意外的tIDENTIFIER,期望keyword_end default_options.update(验证: false)
有人能解释为什么会发生这个错误,以及我如何绕过SSL来获得查询的结果吗?
发布于 2016-08-09 19:07:33
你得到syntax error, unexpected tIDENTIFIER, expecting keyword_end default_options.update(verify: false)
是因为这行
HTTParty.get(get("", query: { query: term})["elements"])
最后有一个遗漏的括号。实际上,您不需要在get
上调用HTTParty
。替换
HTTParty.get(get("", query: { query: term})["elements"])
使用
get("",query: { query: term})["elements"])
将您的文件与https://github.com/jhu-ep-coursera/fullstack-course1-module3/blob/master/app/models/coursera.rb进行比较
现在返回到SSl错误。
来自https://gist.github.com/mislav/5026283
当谈到> HTTPS时,您可能会在Ruby2.0中获得证书错误的原因是因为没有一个默认的OpenSSL (在构建Ruby时使用)信任的证书包。
您可以通过安装证书来避免错误,而不是禁用SSL。
gist还包含有关如何手动安装证书包的信息。
希望这能有所帮助!
https://stackoverflow.com/questions/38858422
复制相似问题