我正在开发Ruby on Rails应用程序。我必须向以下内容发出GET请求:
https://[@subdomain] .chargify.com/subscriptions/(@subscription.id) . json
收到的响应将是json。我试图通过使用ruby的"net/http"库进行GET请求来实现这一目标,我的代码如下:
res = Net::HTTP.get(URI.parse('https://[@subdomain].chargify.com/subscriptions/[@subscription_id].json'))
但是我得到了一个错误,它是:
错误的URI(不是URI?):[@subscription_id] https://[@subdomain] .chargify.com/subscriptions/. json
我不确定我到底在哪里犯了这个错误。任何建议或帮助将不胜感激。
谢谢
您指的是#{@subdomain}
而不是[@subdomain]
吗?必须在双引号"
内,以便正确插入
现在您知道您的错误是您没有正确地插入字符串。您应该指定#{@subdomain}而不是[@subdomain],并且您需要在字符串
周围使用双引号。现在的问题是需要告诉http连接使用ssl。我用这样的东西…
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
request = Net::HTTP::Get.new(uri.request_uri)
两件事:
-
@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"))
执行get操作
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