如何在Ruby http post中发送表单数据

时间:2013-10-23 22:10:40

标签: ruby net-http

我想从我的Rails应用程序向API发送帖子。我可以使用POSTMAN来实现这一点:

postman screenshot

如果我点击POSTMAN中的预览,它会将其显示为请求:

POST /api/users/status HTTP/1.1
Host: 
Cache-Control: no-cache

----WebKitFormBoundaryE19zNvXGzXaLvS5C
Content-Disposition: form-data; name="params"

{"pgb": "sample_token", "token": "sample_token" }
----WebKitFormBoundaryE19zNvXGzXaLvS5C

这是我要发送的内容。但是当使用Ruby的Net :: HTTP :: Post时,我似乎无法复制表单数据。这是我到目前为止的内容,但是这个帖子用x-www-form-urlencoded作为内容类型:

url = URI.parse(ENV['URL'])

req = Net::HTTP::Post.new(url.path)
req.set_form_data({"params" => data.to_json})

https = Net::HTTP.new(url.host, url.port)
https.use_ssl = true
https.verify_mode = OpenSSL::SSL::VERIFY_NONE
https.set_debug_output $stdout

resp = https.request(req)
response = JSON.parse(resp.body)

有没有办法用ruby发布表单数据?

1 个答案:

答案 0 :(得分:0)

您可以尝试使用一些像Ruby客户端这样的Ruby宝石。 http://rubygems.org/gems/rest-client

只需输入以下内容

即可
gem install rest-client

可在此处找到文档http://rubygems.org/gems/rest-client