当我尝试使用HTTParty访问Web服务器时,我收到了SSL证书错误。这是我最初的错误。
SSL_connect返回= 1 errno = 0状态= 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(verify:false)
有人可以解释为什么会出现此错误以及如何绕过SSL以获取查询结果?
答案 0 :(得分:0)
你得到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
您在谈论时可能会在Ruby 2.0中获得证书错误的原因> HTTPS是因为没有OpenSSL的默认证书包 (在构建Ruby时使用)信任。
您可以通过安装证书来解决错误,而不是禁用SSL。
要点还包含有关如何手动安装证书包的信息。
希望这有帮助!