Сделайте запрос GET и получите параметры - PullRequest
1 голос
/ 07 июля 2011

Я работаю над приложением Ruby on Rails. Мне нужно сделать запрос GET на следующее:

https://[@subdomain].chargify.com/subscriptions/[@subscription.id].json

Полученный ответ будет json. Я пытаюсь добиться этого, отправляя запрос GET с использованием библиотеки 'net / http' ruby, и мой код выглядит следующим образом:

res = Net::HTTP.get(URI.parse('https://[@subdomain].chargify.com/subscriptions/[@subscription_id].json')) 

Но я получаю сообщение об ошибке:

плохой URI (не URI?): https://[@subdomain].chargify.com/subscriptions/[@subscription_id].json

Я не уверен, где именно я ошибаюсь. Любые предложения или помощь будут оценены.

Спасибо

Ответы [ 3 ]

1 голос
/ 08 июля 2011

Теперь вы знаете, что ваша ошибка была в том, что вы неправильно интерполировали строку.Вы должны были указать # {@ subdomain}, а не [@subdomain], и вам нужно двойные кавычки вокруг строки

Проблема, с которой вы сейчас столкнулись, заключается в том, что вам нужно сказатьсоединение http для использования ssl .Я использую что-то вроде этого ..

http = Net::HTTP.new(uri.host, uri.port)

http.use_ssl = true

request = Net::HTTP::Get.new(uri.request_uri)
1 голос
/ 07 июля 2011

Вы имеете в виду #{@subdomain} вместо [@subdomain]? Это должно быть внутри двойных кавычек " для правильной интерполяции.

0 голосов
/ 08 июля 2011

Две вещи:

  1. Значение @subdomain необходимо передать с помощью

    #{@subdomain}
    
  2. Соединение 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 
...