mik*_*927 5 ruby post ruby-on-rails http request
我正在发送 HTTP POST 请求:
data = { id: 1, name: 'ABC' }
uri = URI.parse('http://localhost:3000/events')
http = Net::HTTP.new(uri.host, uri.port)
http.post(uri, data.to_json)
Run Code Online (Sandbox Code Playgroud)
我的路线文件:
Rails.application.routes.draw do
post '/events' => 'receiver#create'
end
Run Code Online (Sandbox Code Playgroud)
而创建方法看起来像:
def create
package = {
id: ,
name:
}
end
Run Code Online (Sandbox Code Playgroud)
如何访问通过请求传递的数据值?我的目标是将其分配给创建方法中的新哈希
您还应该在请求中设置 Content-Type 标头:
\n\nhttp.post(uri, data.to_json, {"Content-Type" => "application/json", "Accept" => "application/json"})\n
Run Code Online (Sandbox Code Playgroud)\n\n然后您可以在控制器中使用params[:id]
and 。params[:data]
def create\n @package = {id: params.require(:id), data: params.require(:data)}\n head :no_content\nend\n
Run Code Online (Sandbox Code Playgroud)\n\nhead :no_content
将呈现空回复(以便您可以稍后创建视图)。并将params.require
确保提供您的参数(否则控制器将返回 400 Bad Request 响应)\xe2\x80\x93,这样您以后就不会收到一些奇怪的undefined method ... of nil
错误,以防您在请求中遗漏了参数。
归档时间: |
|
查看次数: |
6839 次 |
最近记录: |