Ruby:PUT请求与JSON正文?
我需要使用ruby创建HTTP PUT请求 。
该请求具有JSON正文
我能够使用以下方法生成JSON主体:
require 'rubygems' require 'json' jsonbody = JSON.generate["message"=>"test","user"=>"user1"]
我需要将此PUT请求发送到url:
require 'open-uri' url = URI.parse('http://www.data.com?access_token=123')
有人可以告诉我如何在Ruby中做到这一点?
使用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}
反对以下sinatra服务:
require 'sinatra' require 'json' put '/users/:id' do |n| data = JSON.parse(request.body.read) "Got #{data} for user #{n}" end
适用于我的电脑。
最简单的方法是使用Net::HTTP
:
require 'net/http' http = Net::HTTP.new('www.data.com') response = http.request_put('/?access_token=123', jsonbody)