Подтвердить что ты не робот

Как отлаживать/отображать запрос, отправленный с помощью RestClient

Я пытаюсь использовать RestClient для доступа к веб-сервису с использованием метода post. Я отправляю токен авторизации, как указано, но я все еще получаю ошибку статуса 403, что означает, что мне запрещено использовать этот api. Есть ли способ, чтобы я мог видеть, что запрос отправляется с почтой http, чтобы я мог проверить заголовки? Я не могу найти какой-либо пример или какую-либо документацию, в которой упоминается, как это сделать?

Мой код похож на этот:

token = get_token

response = RestClient.post "https://api-dev.xxx.com/software/services/search/ABC",
  :authorization => "Bearer #{token}"
4b9b3361

Ответ 1

Вы можете попробовать включить ведение журнала RestClient и посмотреть, обеспечивает ли это любой полезный вывод:

RESTCLIENT_LOG=stdout path/to/my/program

или если вы используете Rails

RESTCLIENT_LOG=stdout bundle exec passenger

заменив passenger на ваш выбор сервера. Это перенаправит все записи на стандартный вывод (консоль).

Лично я предпочитаю использовать более подробные инструменты, когда мне нужно проверить или устранить HTTP-запросы.

Вы можете попробовать curl или wget, если вам нравится командная строка или одно из многочисленных расширений браузера, которые позволяют легко выполнять запросы, проверять вывод, сохранять в будущем, настраивать разные среды и т.д. Оба Postman и Расширенный клиент REST являются хорошим выбором.

Ответ 3

Если вы не знаете (или хотите потрудиться) пройти в env. переменная для вашего приложения (в моем случае это был Passenger/Rails), выполните что-то подобное:

$ cat >/usr/share/foreman/config/initializers/00_rest_client.rb <<'EOT'
require 'rest_client'
RestClient.log =
  Object.new.tap do |proxy|
    def proxy.<<(message)
      Rails.logger.info message
    end
  end
EOT