Listing 1. ebay-lookup.rb #!/usr/bin/ruby require 'net/http' require 'rexml/document' if ARGV.length == 0 puts "#{$0}: You must enter at least one argument." exit end output = "" # Iterate through each of our arguments ARGV.each do |query_string| output << "Searching for: #{query_string}\n" # Put together an eBay parameter string ebay_params = {'CallName' => 'GetSearchResults', 'RequestToken' => 'XXX', 'RequestUserId' => 'YYY', 'Schema' => 1, 'ItemTypeFilter' => 3, 'SearchInDescription' => 1, 'StoreSearch' => 3, 'DetailLevel' => 3, 'Query' => query_string}.map {|key,value| "#{key}=#{value}"}.join("&") # Ask eBay what it knows about our query_string ebay_response = Net::HTTP.get_response('rest.api.ebay.com', '/restapi?' << ebay_params) xml = REXML::Document.new(ebay_response.body) # Get basic information how_many_matches = xml.root.elements["PaginationResult/TotalNumberOfEntries"].text output << "Number of matches: #{how_many_matches}\n" end # Show everyone what we've learned puts output