【问题标题】:Ruby Post Request with Basic Auth and Multiple Params具有基本身份验证和多个参数的 Ruby Post 请求
【发布时间】:2016-12-13 17:33:36
【问题描述】:

我在做一些可能很简单的事情时遇到了可笑的困难......

我正在尝试在 ruby​​ 中运行一个简单的 POST 请求。我查看了路边、台风、休息客户端等...发布请求具有基本身份验证(通过 api 密钥)和两个参数...

我在下面以 curl 形式写出了命令,效果很好。

curl -X POST https://api.com/v1 -u any_string:abc123 -d var1="help" -d var2="me"

谁能帮我把它翻译成红宝石?我不介意使用台风、路缘石等……只要它有效……

【问题讨论】:

    标签: ruby rest-client curb typhoeus


    【解决方案1】:

    我以前使用过这个工具并取得了一些成功。 https://jhawthorn.github.io/curl-to-ruby/

    您的 curl 语句会生成此 Ruby 代码。

    require 'net/http'
    require 'uri'
    
    uri = URI.parse("https://api.com/v1")
    request = Net::HTTP::Post.new(uri)
    request.basic_auth("any_string", "abc123")
    request.set_form_data(
      "var1" => "help",
      "var2" => "me",
    )
    
    response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == "https") do |http|
      http.request(request)
    end
    
    # response.code
    # response.body
    

    Ruby 中有大约一百万种不同的 HTTP 请求库,但有时用 Net HTTP 编写它很简单(Net HTTP 包含在 Ruby 标准库中)。

    【讨论】:

      【解决方案2】:

      rest-client 对此也非常简洁。

      require 'rest-client'
      
      RestClient::Request.execute(method: :post, url: 'https://api.com/v1',
                                  user: 'any_string', password: 'abc123',
                                  payload: {var1: 'help', var2: 'me'}
      )
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-05-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多