【问题标题】:Net::http and HTTParty work locally but not on Heroku - RoR3Net::http 和 HTTParty 在本地工作,但不能在 Heroku 上工作 - RoR3
【发布时间】:2014-05-23 19:26:50
【问题描述】:
我正在开发一些 RoR3 应用程序,我必须向某个服务器发出 HTTP 请求。
我尝试了 Ruby 的 Net::HTTP 库,并且在本地工作,但在 Heroku 上没有。然后我尝试了 HTTParty 并让它在本地工作,但它仍然无法在 Heroku 上工作。我明白了
很抱歉,出了点问题。
当我检查 Heroku 日志时,我得到了
500 内部服务器错误
显示为最后一个日志。
我确保在 gemfile 的正确位置提到了“httparty”gem。
有没有关于如何从 Heroku PaaS 发出 HTTP 请求的教程?
谢谢
【问题讨论】:
标签:
ruby-on-rails-3
ruby-on-rails-3.2
httparty
net-http
【解决方案1】:
Amit Suroliya 是正确的。我也在使用 HTTParty,它正在通过 Curl 和 Development 工作,但在生产中会崩溃。因为 HTTParty 参数是文字 URL(作为字符串),所以它必须是完美的 URL/URI(意味着没有空格)。我的错误 URI 如下:
HTTParty.get("http://api.blahblahblah.com/v1/Boards/Search?&limit=79&query=#{query}&filter_date_from=1423353600")
注意插值query=#{query}",所以如果query='Michelle Obama',注意Michelle和Obama之间的空间。因为插值,HTTParty.get('string')是不正确的。
解决方案:
将字符串中的所有空格替换为+,或者您可以使用%20。
我用query.gsub!(' ', '+')
有关 URL 中空格的更多信息,请查看此处:URL 中的空格?