繁体   English   中英

无法在Ruby on Rails中绕过HTTParty的SSL证书错误

[英]Unable to bypass SSL Certificate Error with HTTParty in Ruby on Rails

当我尝试使用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以获取查询结果?

你得到syntax error, unexpected tIDENTIFIER, expecting keyword_end default_options.update(verify: false)因为这行所以syntax error, unexpected tIDENTIFIER, expecting keyword_end default_options.update(verify: false)

HTTParty.get(get("", query: { query: term})["elements"])

最后有一个缺失的括号。 实际上,您不需要在HTTParty上调用get 更换

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时,您可能在Ruby 2.0中获得证书错误的原因是因为没有OpenSSL(在构建Ruby时使用)信任的默认证书包。

您可以通过安装证书来解决错误,而不是禁用SSL。

要点还包含有关如何手动安装证书包的信息。

希望这可以帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM