我需要帮助在ruby中创建一个post请求。但我不想使用Net::Http
库。我只想使用curl命令发布帖子请求。
这是我现有的代码。
`
uri = URI.parse("http://example.com")
header = {'Content-Type' => 'application/json','Accept' => "application/json"}
req_data = {"name" => params[:user][:login], "pass" =>params[:user][:password]}
http = Net::HTTP.new(uri.host, uri.port)
request = Net::HTTP::Post.new(uri.request_uri, header)
request.body = req_data.to_json
response = http.request(request)
`
答案 0 :(得分:0)
您有机会从用户的输入执行命令。 Shellwords.escape
应该没问题。
cmd_tpl = %{curl -H "Content-Type: application/json" -H "Accept: application/json" -d "name=%s&pass=%s" %s}
cmd = cmd % [
Shellwords.escape(URI.encode(params[:user][:login])),
Shellwords.escape(URI.encode(params[:user][:password])),
Shellwords.escape("http://example.com")
]
content = `#{cmd}`