Time.now.to_i, "command" => "returnComplet-6ren">
gpt4 book ai didi

Ruby Http Post 参数

转载 作者:数据小太阳 更新时间:2023-10-29 08:36:44 25 4
gpt4 key购买 nike

如何向我现在拥有的内容添加发布参数:

@toSend = {
"nonce" => Time.now.to_i,
"command" => "returnCompleteBalances"
}.to_json

uri = URI.parse("https://poloniex.com/tradingApi")
https = Net::HTTP.new(uri.host,uri.port)
https.use_ssl = true
https.verify_mode = OpenSSL::SSL::VERIFY_NONE
req = Net::HTTP::Post.new(uri.path, initheader = {'Content-Type' =>'application/json'})
req.set_form_data({"nonce" => Time.now.to_i, "command" => "returnCompleteBalances"})
req['Key'] = '******-N4WZI2OG-******-10RX5JYR'
req['Sign'] = 'secret_key'

req.body = "[ #{@toSend} ]"
res = https.request(req)
puts "Response #{res.code} #{res.message}: #{res.body}"

这些是我要发送的参数:

"nonce" => Time.now.to_i,
"command" => "returnCompleteBalances"

谢谢。

最佳答案

您似乎正在尝试使用 Poloniex 的交易 API。如果这是您的主要目标,您可能希望考虑使用库来处理细节。例如:

https://github.com/Lowest0ne/poloniex

如果您的主要目标不是简单地使用 API,而是将其作为一种学习体验,请引用以下几点:

  • API 文档指出 API 接受表单编码的 POST 数据(非 JSON)但以 JSON 响应。
  • 关键参数(“Key”)就像您的用户 ID。它允许 Poloniex 了解谁试图对 API 发出请求。
  • 签名参数(“Sign”)是根据您的 key 内容和消息内容(编码表单数据)生成的 HMAC。这会产生一种只有您和 Poloniex 才能复制的信息的指纹,从而在一定程度上保证您的请求来自 key 的所有者。当然,这是假设您的 secret key 确实只有您知道。

我不使用 Poloniex 交易所,无法测试此代码,但我相信这与您要完成的目标很接近:

require 'net/http'
require 'openssl'

secret = 'your-secret-key'
api_key = 'your-api-key'
uri = URI('https://poloniex.com/tradingApi')

http = Net::HTTP.new(uri.host)
request = Net::HTTP::Post.new(uri.request_uri)
form_data = URI.encode_www_form({:command => 'returnBalances', :nonce => Time.now.to_i * 1000 })
request.body = form_data
request.add_field('Key', api_key)
request.add_field('Sign', OpenSSL::HMAC.hexdigest( 'sha512', secret, form_data))

res = http.request(request)
puts res.body

关于Ruby Http Post 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33698237/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com