我正在研究Ruby on Rails应用程序。我必须向以下内容发出GET请求:
的https:// [@subdomain] .chargify.com /订阅/ [@ subscription.id]上传.json
收到的回复将是json。我试图通过使用ruby的'net / http'库进行GET请求来实现这一点,我的代码如下:
res = Net::HTTP.get(URI.parse('https://[@subdomain].chargify.com/subscriptions/[@subscription_id].json'))
但我收到的错误是:
错误的URI(不是URI?): HTTPS:// [@subdomain] .chargify.com /订阅/ [@subscription_id]上传.json
我不确定我在哪里弄错了。任何建议或帮助将不胜感激。
由于
答案 0 :(得分:1)
您的意思是#{@subdomain}
而不是[@subdomain]
吗?这必须在双引号"
内,才能正确插值。
答案 1 :(得分:1)
现在您知道您的错误是您没有正确插入字符串。您应该指定#{@ subdomain}而不是[@subdomain],并且字符串周围需要双引号
您现在遇到的问题是您需要告诉http连接使用ssl 。我使用这样的东西..
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Get.new(uri.request_uri)
答案 2 :(得分:0)
两件事:
需要使用
传递@subdomain的值#{@subdomain}
连接是ssl
def net_http(uri)
h = Net::HTTP.new(uri.host, uri.port)
h.use_ssl=true
h
end
然后
request=net_http(URI.parse("https://# {@subdomain}.chargify.com/subscriptions/#{@subscription_id}.json"))
执行获取操作
request=net_http(URI.parse("https://# {@subdomain}.chargify.com/subscriptions/#{@subscription_id}.json")).start do |http|
http.get(URI.parse("whatever_url").path,{:params=>123})
end