Unfuddle API获取帐户信息
我正在尝试使用ActiveResource从Unfuddle API获取帐户信息
url是http://mydomain.unfuddle.com/api/v1/account
这是我的ActiveResource类
class Account < ActiveResource::Base self.collection_name = "account" self.site = "https://mydomain.unfuddle.com/api/v1" self.user = "me" self.password = "pass" end
如果我尝试使用Account.all获取我的帐户信息,我将获得一个空数组,但如果我尝试这个
require 'net/https' UNFUDDLE_SETTINGS = { :subdomain => 'mydomain', :username => 'me', :password => 'pass', :ssl => true } http = Net::HTTP.new("#{UNFUDDLE_SETTINGS[:subdomain]}.unfuddle.com",UNFUDDLE_SETTINGS[:ssl] ? 443 : 80) if UNFUDDLE_SETTINGS[:ssl] http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE end begin request = Net::HTTP::Get.new('/api/v1/account') request.basic_auth UNFUDDLE_SETTINGS[:username], UNFUDDLE_SETTINGS[:password] response = http.request(request) if response.code == "200" puts response.body else puts "HTTP Status Code: #{response.code}." end rescue => e puts e.message end
我得到了我的帐户信息,以及为什么ActiveResource方法不起作用的任何想法?
**更新
我忘了指定我有这个问题https://github.com/rails/rails/issues/2318我使用erikkallens hack。
这似乎是这个问题https://github.com/rails/rails/issues/2318 ,我尝试了vaskas解决方案,但它默认情况下不起作用我必须修改它。
class Account < ActiveResource::Base self.collection_name = "account" self.site = "https://mydomain.unfuddle.com/api/v1" self.user = "me" self.password = "pass" self.format = AccountXMLFormatter.new end class AccountXMLFormatter include ActiveResource::Formats::XmlFormat def decode(xml) [account: ActiveResource::Formats::XmlFormat.decode(xml)] end end