繁体   English   中英

Ruby Net :: HTTP补丁请求获取502 Bad Gateway

[英]Ruby Net::HTTP patch request get 502 Bad Gateway

我正在尝试通过Ruby实现Curl补丁请求。 Curl请求如下所示:

curl https://mywebsite/test/plan \
-X PATCH \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer {myJWT}' \
-d '{
  "CheckOrNot": "N",
  "CheckList": [
      {
        "id": "123"
      },
      {
        "id": "234"
      }
   ]
}'

当我运行Curl命令时,我可以得到:

400错误的请求。

但是,当我尝试使用Ruby发出如下请求时:

require 'net/http'
require 'uri'
require 'json'

uri = URI.parse("https://mywebsite/test/plan")
request = Net::HTTP::Patch.new(uri)
request.content_type = "application/json"
request["Authorization"] = "Bearer {myJWT}"
request.body = JSON.dump({
    "CheckOrNot" => "N",
    "plans" => [
    {
        "id" => "123"
    },
    {
        "id" => "234"
    }
  ]
})


req_options = {
  use_ssl: uri.scheme == "https", 
}

response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
   http.request(request)
end

我将永远得到

502错误的网关:从上游服务器收到无效的响应\\ n。

谁能解释为什么会这样? 我该如何解决? 有没有更好的方法在Ruby中实现Curl Patch要求?

问题是我从Curl和net / HTTP客户端调用的IP地址不同。 使用新的客户端限制并成功使用API​​。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM