复制 curl 命令以访问 Rails 中的 Smartsheet
Replicate curl command to access Smartsheet in Rails
我正在尝试通过 API 2.0 在 Ruby-on-Rails 应用程序中访问 Smartsheet。我可以让他按照 curl 命令工作
curl --request GET https://api.smartsheet.om/2.0/sheets -H "Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxxxxx"
所有在 Ruby 代码中复制的尝试都失败了。任何人都可以帮助转换为 Ruby 吗?
谢谢!
您有几个选项可以实现。如果你想像你建议的那样接近 curl,你可以捕获用反引号包裹它的 curl 命令的响应
response = `curl --request GET https://api.smartsheet.om/2.0/sheets -H "Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxxxxx"`
不过,我建议使用 CURB 之类的东西,它为 libcurl 提供 Ruby 绑定。它会添加一些语法糖,所以你的请求看起来像
response = Curl.get("https://api.smartsheet.om/2.0/sheets") do |http|
http.headers['Authorization'] = 'Bearer xxxxxxxxxxxxxxxxxxxxxxxxx'
end
另一种选择是完全放弃 curl 并使用 gem,如 HTTParty。它利用 Ruby 的 net/http
来发出请求。
大概是这样的:
response = HTTParty.get("https://api.smartsheet.om/2.0/sheets",
headers: 'Authorization' => 'Bearer xxxxxxxxxxxxxxxxxxxxxxxxx')
我正在尝试通过 API 2.0 在 Ruby-on-Rails 应用程序中访问 Smartsheet。我可以让他按照 curl 命令工作
curl --request GET https://api.smartsheet.om/2.0/sheets -H "Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxxxxx"
所有在 Ruby 代码中复制的尝试都失败了。任何人都可以帮助转换为 Ruby 吗?
谢谢!
您有几个选项可以实现。如果你想像你建议的那样接近 curl,你可以捕获用反引号包裹它的 curl 命令的响应
response = `curl --request GET https://api.smartsheet.om/2.0/sheets -H "Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxxxxx"`
不过,我建议使用 CURB 之类的东西,它为 libcurl 提供 Ruby 绑定。它会添加一些语法糖,所以你的请求看起来像
response = Curl.get("https://api.smartsheet.om/2.0/sheets") do |http|
http.headers['Authorization'] = 'Bearer xxxxxxxxxxxxxxxxxxxxxxxxx'
end
另一种选择是完全放弃 curl 并使用 gem,如 HTTParty。它利用 Ruby 的 net/http
来发出请求。
大概是这样的:
response = HTTParty.get("https://api.smartsheet.om/2.0/sheets",
headers: 'Authorization' => 'Bearer xxxxxxxxxxxxxxxxxxxxxxxxx')