Поиск в базе данных UPC с помощью ключа разработчика с использованием Ruby XMLRPC

Что не так с этим кодом?

require 'xmlrpc/client'
def find_product(key, upc)
  server = XMLRPC::Client.new2('http://www.upcdatabase.com/xmlrpc')
  begin
    response = server.call('lookup',[{'rpc_key' => key}, {'upc' =>upc}] )
    rescue XMLRPC::FaultException => e
    puts "Error: "
    puts e.faultCode
    puts e.faultString
  end
end
dev_key  = '40bf22cb32833a2af48fd65121128fc28e42d580'
upc_code = '099482409463'
puts find_product(dev_key, upc_code)

Ответ из базы данных UPC

{"status"=>"fail", "message"=>"Invalid parameters"}

Я не могу выяснить, какой параметр недействителен, так как на http://www.upcdatabase.com/ об их API.

Может кто-нибудь помочь мне? Я использую Руби 1.9.2


person goutam    schedule 16.11.2011    source источник
comment
‹snark›Что с этим не так - вы имеете в виду, кроме того факта, что вы используете XML-RPC? :)‹/снарк›   -  person Marnen Laibow-Koser    schedule 16.11.2011
comment
Кроме того, вы спасаете исключение. Что это исключение говорит само за себя?   -  person Marnen Laibow-Koser    schedule 16.11.2011


Ответы (1)


Это так забавно, что я просто билась головой об одно и то же. Этот код работает для меня:

require 'xmlrpc/client'
server = XMLRPC::Client.new("www.upcdatabase.com", "/xmlrpc")
result = server.call("lookup", 'rpc_key' => "mykey", 'upc' => "071160055506")

Изменить: я также нашел http://www.upcdatabase.org/api.php, который на самом деле a json api, я тоже попробую и отпишусь, если хотите.

person Hugo    schedule 17.11.2011
comment
Я думаю, что они обновили свой API, поэтому приведенный выше код больше не работает. Может ошибаться... - person daveomcd; 29.06.2014