Клиент Ruby / Rails для HTTPS API - PullRequest
2 голосов
/ 11 августа 2011

Мне нужно иметь дело с каким-то сторонним API, для которого требуется соединение https. У меня даже есть файл сертификата mycert.pem и я пытаюсь соединиться с API следующим образом:

https = Net::HTTP.new(uri.host, uri.port)
https.use_ssl = true
https.verify_mode = OpenSSL::SSL::VERIFY_PEER
https.ca_file = File.join(Rails.root, "data", "certs", "mycert.pem")
https.ca_path = [Rails.root, "data", "certs"].join("/")

https.start {
  data = {
      <here some request data>
  }.to_json

  https.request_post([API_HOST, API_URL].join('/'), data) {|res|
    print res.body
  }
}

Но у меня всегда возникает ошибка авторизации из этого API, как и у меня недействительный (или устаревший) сертификат. Даже я уверен, что это не так и моя проблема с клиентом, потому что другой клиент соединяется с этим API (и тем же сертификатом) без проблем.

Итак, вопрос

Как правильно https соединиться с сервисом от ruby? Может я что-то потерял или сделал что-то не так?

1 Ответ

0 голосов
/ 19 марта 2014

У меня нет ответа на эту конкретную проблему, но вы можете попробовать множество библиотек для этого, которые могут вам помочь.

Проверьте это удивительное сравнение слайд-шоу:

http://www.slideshare.net/HiroshiNakamura/rubyhttp-clients-comparison

Я использую Фарадей для своих проектов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...