Ruby:PUT请求与JSON正文?

uni*_*der 17 ruby json put httprequest

我需要使用ruby 创建HTTP PUT请求.

该请求具有JSON正文

我能够使用以下方法生成JSON主体:

require 'rubygems'
require 'json'
jsonbody = JSON.generate["message"=>"test","user"=>"user1"]
Run Code Online (Sandbox Code Playgroud)

我需要将此PUT请求发送到url:

require 'open-uri'
url = URI.parse('http://www.data.com?access_token=123')
Run Code Online (Sandbox Code Playgroud)

有人可以告诉我如何在Ruby中做到这一点?

Lar*_*ann 20

使用restclient(gem install rest-client),如下所示:

require 'rubygems'
require 'rest_client'
require 'json'

jdata = JSON.generate(["test"])
RestClient.put 'http://localhost:4567/users/123', jdata, {:content_type => :json}
Run Code Online (Sandbox Code Playgroud)

反对以下sinatra服务:

require 'sinatra'
require 'json'

put '/users/:id' do |n|
  data = JSON.parse(request.body.read)
  "Got #{data} for user #{n}"
end
Run Code Online (Sandbox Code Playgroud)

适用于我的电脑.