我正在为我的Rails应用设置API,并且我尝试接收来自其他应用的POST请求。我设法从其他应用程序远程发送发布请求,但接收请求的方法没有任何反应。
这是我的Heroku记录,显示已收到请求:
2018-05-13T04:55:54.456743 + 00:00 heroku [router]:at = info method = POST path =" / path" host = www.example.com request_id = e0adgss69-0fbd-4597-8fse-f40d344c55f fwd =" xx.xx.xxx.xx" dyno = web.1 connect = 0ms service = 367ms status = 422 bytes = 93468 protocol = http
这是发送请求的其他应用中的代码:
@items = []
post_url = "http://www.example.com/path"
post_uri = URI(post_url)
http = Net::HTTP.new(post_uri.host, post_uri.port)
req = Net::HTTP::Post.new(post_uri, 'Content-Type' => 'application/json')
req.body = {items: @items}.to_json
res = http.request(req)
puts "response #{res.body}"
这是接收请求的方法:
def path
Item.create(name: "test")
end
但是在发送请求后,我的第一个应用程序没有名为" test"的项目。但我知道已收到请求。当我在控制台中运行Item.create(name: "test")
时,它会成功。发生了什么事?