8

我有一个运行良好的 curl 命令,但我需要在 ruby​​ 脚本中自动执行此操作,

卷曲命令:

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)

上面的代码正在运行,我有一个编码的 url,我传递给 URI.escape,这让我发布了这个关于错误响应的问题。发现问题并修复它:)

4

3 回答 3

22

最好和最简单的解决方案!

  1. 复制您的 CURL 代码。

  2. 转到此页面

  3. 粘贴您的 CURL 代码。

  4. 要开心。

我测试了这个解决方案这个页面它太棒了。

于 2017-09-05T15:40:42.277 回答
8

您可以直接从 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}`

并且后面的勾号会执行系统 ​​curl

于 2014-01-30T20:14:31.737 回答
4

您可以使用路边

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")
于 2014-01-30T20:29:55.140 回答