1

ruby スクリプトを使用して POST データを送信する必要があります。requests次のコードで、を使用して、Python経由で送信できました。

payload = {"firstName": "John", "lastName": "Appleseed"}
headers = {'content-type': 'application/json'}
r = requests.post ("http://localhost:8000/api/v1/person/?format=json",data=json.dumps(payload), headers = headers)

今、私はそれをルビーに翻訳しようとしましたnet/http:

url = "http://localhost:8000/api/v1/person/?format=json"
payload = {:firstName => 'John', :lastName => 'Appleseed'}.to_s

request = Net::HTTP::Post.new(url)
request.add_field('content-type', 'application/json')
request.body = payload

uri = URI.parse(url)
http = Net::HTTP.new(uri.host, uri.port)
response = http.request(request)

しかし、サーバーから 404 が返されます。Rubyコードで何が間違っているのでしょうか?

4

1 に答える 1

1

次のように表示されpayloadます。

>> {:firstName => 'John', :lastName => 'Appleseed'}.to_s
=> "firstNameJohnlastNameAppleseed"

json.dumpsその出力を生成しません。to_json代わりに使用したい:

>> require "json"
=> true
>> {:firstName => 'John', :lastName => 'Appleseed'}.to_json
=> "{\"firstName\":\"John\",\"lastName\":\"Appleseed\"}"
于 2013-06-16T19:41:24.837 に答える