On Mar 2, 2006, at 2:03 PM, James Edward Gray II wrote: > We have an odd problem at work today. > > Running the following code on Windows XP gives us a CVV2 error, > which is what we expect (we didn't give one). However, running the > same code on Linux or OS X gets a complaint that we didn't provide > the key, which is obviously not true (see last line). > > Does anyone see anything inherently non-portable in the following > code? > > require 'net/http' > require 'net/https' > > uri = URI.parse 'https://www.usaepay.com/gate.php' > p (http = Net::HTTP.new(uri.host, uri.port)) > p http.use_ssl = true > p http.verify_mode = OpenSSL::SSL::VERIFY_NONE > p http.post(uri.path, "UMkey=OUR_KEY_CODE_HERE").body > Switching the code to the following seems to work everywhere, as long as 1.8.4 is used: require 'net/https' uri = URI.parse 'https://www.usaepay.com/gate.php' req = Net::HTTP::Post.new(uri.path) req.set_form_data "UMkey" => "OUR_KEY_CODE_HERE" p (http = Net::HTTP.new(uri.host, uri.port)) p http.use_ssl = true p http.verify_mode = OpenSSL::SSL::VERIFY_NONE p http.start { http.request(req) }.body I still don't understand why the first version didn't work though... James Edward Gray II