使用Ruby XMLRPC使用开发人员密钥查找UPC数据库

时间:2011-11-16 09:09:07

标签: ruby database xml-rpc lookup

此代码有什么问题?

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)

来自UPCdatabase的响应

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

我无法找到哪个参数无效,因为http://www.upcdatabase.com/上有关其API的信息不多。

任何人都可以帮助我吗?我使用的是Ruby 1.9.2

1 个答案:

答案 0 :(得分:2)

这太有趣了,我只是在敲打同样的事情。这段代码适合我:

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实际上有一个json api,我也会试一试,如果你愿意,可以回复。