ruby http debugging rest-client

ruby - Cómo depurar/mostrar la solicitud enviada usando RestClient



http debugging (4)

En caso de que no sepas (o quieras molestar) pasar en env. variable a su aplicación (en mi caso fue Pasajero / Carriles), haga algo similar:

$ 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

Estoy tratando de usar RestClient para acceder a un servicio web utilizando el método de publicación. Estoy enviando el token de autorización según lo especificado, pero aún recibo un error de estado 403, lo que significa que tengo prohibido usar esa API. ¿Hay alguna forma en que pueda ver la solicitud que se envía con la publicación http para poder verificar los encabezados? ¿No puedo encontrar ningún ejemplo o documentación que mencione cómo hacerlo?

Mi código es similar a esto:

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


Podría intentar habilitar el RestClient de RestClient y ver si esto proporciona algún resultado útil:

RESTCLIENT_LOG=stdout path/to/my/program

o si está utilizando rieles

RESTCLIENT_LOG=stdout bundle exec passenger

Reemplazo de passenger con su elección de servidor. Esto redireccionará todo el registro a la salida estándar (su consola).

Personalmente, prefiero usar herramientas más detalladas cuando necesito inspeccionar o solucionar problemas de solicitudes HTTP.

Puede probar curl o wget si prefiere la línea de comandos, o una de las muchas extensiones de navegador que le permiten realizar solicitudes fácilmente, inspeccionar resultados, guardar para uso futuro, configurar diferentes entornos, etc. Tanto Postman como Advanced REST Client son buenas opciones .



Si realiza una solicitud manualmente, puede usar inspect para mostrar la URL completa

req = RestClient::Request.new( :method => :post, :url => "https://api-dev.xxx.com/software/services/search/ABC", headers: {params:{:authorization => "Bearer #{token}"}}) puts req.inspect