ruby未定义的TempFile方法字符串?

时间:2017-11-15 03:10:05

标签: ruby api

我一直在尝试使用ticketmaster api来获取一些数据。但是,当我尝试运行代码时,它会引发错误。我不知道为什么错误突然出现。我不知道是不是因为我给的网址。 Open方法接受url作为字符串,所以我转换为字符串,如果我尝试,这个url在postman中工作。确切的错误是

C:/RailsInstaller/Ruby2.3.0/lib/ruby/2.3.0/delegate.rb:87:in `method_missing': u
ndefined method `string' for #<Tempfile:0x28c2d50> (NoMethodError)
        from test.rb:20:in `connection'
        from test.rb:47:in `<main>'

我的代码是;

require 'open-uri'
require 'openssl'
require 'json'

class Test
  #silence_warnings do
    OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE  #unless Rails.env.production?
  #end

  def initialize()
    @url="https://app.ticketmaster.com/discovery/v2/events.json?apikey=XXXXXXXXXXXXXXXXXT&city=Binghamton" 
  end

  def connection
    puts "url", @url
    result=open(@url)
    response_status=result.status
    #putstus
    if(response_status[0]=="200")
      @body=JSON.parse(result.string)
      puts("Status is "+ response_status[0],"Server Message is "+ response_status[1])
      return @body
    else
      connection_error
      puts("Status is ", response_status[0])
    end
  end

  def connection_error
    puts "Connection error with the api"
  end


  def silence_warnings
    with_warnings(nil) { yield }
  end

  def get_content
    raise notImplementedMethod
  end



end

a=Test.new
a.connection

0 个答案:

没有答案