尝试使用 Ruby HTTP 起始块发出带有正文的 HTTP Post 请求

Trying to make HTTP Post request with a body using Ruby HTTP start block

我正在尝试使用基本 oauth 和正文参数发出 POST 请求。

response = Net::HTTP.start(uri.host, uri.port, use_ssl: true) do |http|
  request = Net::HTTP::Post.new(uri)
  request['Authorization'] = 'ACCESS_CODE'
  request.body = {
    to:       to,
    subject:  subject,
    text:     text,
    api_type: 'json',
    uh:       @modhash
  }.to_json
  http.request(request)
end

它returns一个

<Net::HTTPOK 200 OK readbody=true>

所以我知道 oauth 正在工作,但是 body 参数没有传递到请求中,因为它返回了这个错误

[".error.NO_USER.field-to"]], ["please enter a username"]]

我检查了正文哈希中的所有数据值,其中 none 为空。

使用 set_form_data 方法设置您的 POST 正文:

这是一个例子from the docs:

request = Net::HTTP::Post.new(uri)
request.set_form_data('from' => '2005-01-01', 'to' => '2005-03-31')