私はRubyをウェブサイトのapiで使用しようとしています。手順は、ヘッダー付きのGETリクエストを送信することです。 HMACハッシュを計算し、apisign
ヘッダーの下に含めます。
$apikey='xxx';
$apisecret='xxx';
$nonce=time();
$uri='https://bittrex.com/api/v1.1/market/getopenorders?apikey='.$apikey.'&nonce='.$nonce;
$sign=hash_hmac('sha512',$uri,$apisecret);
$ch = curl_init($uri);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('apisign:'.$sign));
$execResult = curl_exec($ch);
$obj = json_decode($execResult);
RubyコマンドプロンプトからWindowsにインストールされた.rbファイルを使用しています。Rubyファイルでnet/httpを使用しています。ヘッダー付きのGETリクエストで応答を出力しますか?
質問で提案されているnet/http
を使用します。
参照:
Net::HTTP
https://Ruby-doc.org/stdlib-2.4.1/libdoc/net/http/rdoc/Net/HTTP.htmlNet::HTTP::get
https://Ruby-doc.org/stdlib-2.4.1/libdoc/net/http/rdoc/Net/HTTP.html#method-c-getNet::HTTP::Get
https://Ruby-doc.org/stdlib-2.4.1/libdoc/net/http/rdoc/Net/HTTP/Get.htmlNet::HTTPGenericRequest
https://Ruby-doc.org/stdlib-2.4.1/libdoc/net/http/rdoc/Net/HTTPGenericRequest.html およびNet::HTTPHeader
https://Ruby-doc.org/stdlib-2.4.1/libdoc/net/http/rdoc/Net/HTTPHeader.html (Net::HTTP::Get
で呼び出すことができるメソッドの場合)したがって、たとえば:
require 'net/http'
uri = URI("http://www.Ruby-lang.org")
req = Net::HTTP::Get.new(uri)
req['some_header'] = "some_val"
res = Net::HTTP.start(uri.hostname, uri.port) {|http|
http.request(req)
}
puts res.body # <!DOCTYPE html> ... </html> => nil
注:res
ponseにHTTP結果状態301(永続的に移動)がある場合、 Ruby Net :: HTTP-following 301 redirects を参照してください
httparty
gemをインストールすると、リクエストがスクリプト内で簡単になります
require 'httparty'
url = 'http://someexample.com'
headers = {
key1: 'value1',
key2: 'value2'
}
response = HTTParty.get(url, headers: headers)
puts response.body
その後、.rb
ファイル..