Проблема заключается не в хеш-коде, а в точности о удвоениях. Это вызовет некоторые странные результаты. Пример:
double x = 371.4;
double y = 61.9;
double key = x + y; // expected 433.3
Map<Double, String> map = new HashMap<Double, String>();
map.put(key, "Sum of " + x + " and " + y);
System.out.println(map.get(433.3)); // prints null
Вычисленное значение (ключ) - «433.29999999999995», которое не равно EQUALS до 433.3, и поэтому вы не найдете запись на карте (хеш-код, вероятно, также отличается, но это не главная проблема).
Если вы используете
map.get(key)
, он должен найти запись ... []]
Это сработало для меня.
require 'net/http'
require 'net/https'
require 'openssl'
require 'uri'
require 'json'
ContentURI = URI.parse("example.com")
@cert_raw = File.read('cert.pem')
TestDataPath = '.'
req = Net::HTTP::Get.new(ContentURI.path)
https = Net::HTTP.new(ContentURI.host, ContentURI.port)
https.use_ssl = true
https.cert = OpenSSL::X509::Certificate.new(@cert_raw)
https.key = OpenSSL::PKey::RSA.new(@cert_raw)
https.verify_mode = OpenSSL::SSL::VERIFY_PEER
resp = https.start { |cx| cx.request(req) }
p resp
p resp.body