需要帮助在ruby中发布帖子请求

时间:2014-07-07 11:10:54

标签: ruby-on-rails ruby post curl

我需要帮助在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)

`

1 个答案:

答案 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}`