我有一个运行良好的curl命令,但我需要在ruby脚本中自动执行此操作,
curl cmd:
curl -u usrname:pwd -X POST --data "del=false&val=100" http://localhost:1111/sample/path
我写了以下代码:
uri = URI::HTTPS.build(:host => "localhost", :port => 1111)
uri.path = URI.escape("/sample/path")
client = Net::HTTP.new("localhost", "1111")
req = Net::HTTP::Post.new(uri.request_uri, {"User-Agent" => "UA"})
req.set_form_data({"del" => "false", "val" => "100"})
req.basic_auth("usrname", "pwd")
res = client.request(req)
上面的代码正在运行,我有一个编码的网址,我传递给URI.escape,这让我发布了关于错误响应的问题。对问题进行了解决并修复了它:)
答案 0 :(得分:11)
THE BEST&易于解决方案!!
复制您的CURL代码。
转到此page。
粘贴您的CURL代码。
快乐。
我在这个页面上测试了这个解决方案的惊人之处。
答案 1 :(得分:5)
你可以直接从ruby
执行curl命令usrname = "username"
pwd = "pwd"
val = 100
del= false
http_path = "http://localhost:1111/sample/path"
puts `curl -u #{usrname}:#{pwd} -X POST --data "del=#{del}&val=#{va}" #{http_path}`
后面的刻度将执行系统卷曲
答案 2 :(得分:3)
您可以使用curb
c = Curl::Easy.new
c.http_auth_types = :basic
c.username = 'usrname'
c.password = 'pwd'
c.http_post("http://localhost:1111/sample/path", "del=false&val=100")