Ruby Net :: HTTP-запрос на исправление получает 502 Bad Gateway - PullRequest
0 голосов
/ 06 октября 2018

Я пытаюсь реализовать запрос исправления Curl от Ruby.Запрос 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 Bad Request.

Но когда я пытаюсь использовать 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 Bad Gateway: неверный ответ был получен от вышестоящего сервера\ п.

Кто-нибудь может объяснить, почему это произошло?Как я мог это исправить?И есть ли лучший способ реализовать требование в Curl Patch в Ruby?

1 Ответ

0 голосов
/ 26 октября 2018

Проблема в том, что IP-адрес, который я вызвал из клиента Curl и net / HTTP, отличается.Используйте новое клиентское ограничение и успешно используйте API.

...