Я довольно новичок в Ruby, но мне нужно отладить код Ruby, который я не написал.
В коде Ruby сделан HTTP-запрос. После небольшой регистрации я обнаружил, что объект ответа показывает ошибку 502. Когда я пытаюсь выполнить тот же запрос в Postman, я получаю ожидаемый успешный ответ:
Я даже пытался буквально скопировать / пропустить сгенерированный фрагмент кода Ruby Postman. и он все еще дает мне ошибку 502. При запуске из кода Ruby.
Вот часть, отвечающая за запрос (метод запроса, часть post):
class PatentApi
# Patent analysis API wrapper
require 'uri'
require 'net/http'
DEFAULT_ENDPOINT = configatron.patent_api.endpoint.freeze
# POST /api/v1/graph
def post_complete_patent_graph(data)
response = post('graph', data.to_json)
response
end
# Send as POST request
def post(path, options = {})
request(:post, path, options)
end
# Build the request and return response
def request(method, path, options)
url = URI.parse(DEFAULT_ENDPOINT + path)
Rails.logger.info (url.inspect) # The url looks ok in the logs !
params = options # After logging, this value is ok
case method
when :get
url.query = URI.encode_www_form(params)
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Get.new(url.request_uri)
request["Accept"] = 'application/json'
request["Content-Type"] = 'application/json'
response = http.request(request)
return response
when :post
request = Net::HTTP::Post.new(url, 'Content-Type' => 'application/json')
request.body = params
response = Net::HTTP.start(url.host, url.port, :read_timeout => 320) do |http|
http.request(request)
end
Rails.logger.info 'RESPONSE'
Rails.logger.info (response.code) # 502 ! :(
Rails.logger.info (response.message)
Rails.logger.info 'END RESPONSE'
return response
end
end
end