web-dev-qa-db-ja.com

Ruby:JSON本文を使用したPUTリクエスト?

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でこれを行う方法を教えてもらえますか?

17
unicornherder

restclientgem 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}

次に対して シナトラ サービス:

require 'sinatra'
require 'json'

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

私のコンピューターで動作します。

20
Lars Tackmann

最も簡単な方法はNet::HTTP

require 'net/http'
http = Net::HTTP.new('www.data.com')
response = http.request_put('/?access_token=123', jsonbody)
4
Andy Lindeman