Estoy intentando usar la versión de Ruby de Mechanize para extraer las entradas de mi empleador de un sistema de gestión de tickets del que nos estamos alejando y que no proporciona una API.Mantenimiento de cookies entre solicitudes de Mechanize
El problema es que parece Mechanize no está manteniendo las galletas entre el post
llamada y la llamada get
muestra a continuación:
require 'rubygems'
require 'nokogiri'
require 'mechanize'
@agent = Mechanize.new
page = @agent.post('http://<url>.com/user_session', {
'authenticity_token' => '<token>',
'user_session[login]' => '<login>',
'user_session[password]' => '<password>',
'user_session[remember_me]' => '0',
'commit' => 'Login'
})
page = @agent.get 'http://<url>.com/<organization>/<repo-name>/tickets/1'
puts page.title
user_session
es la URL a la que el sitio de página Posts inicio de sesión, y no tengo verifiqué que esto realmente me conecta. Pero la página que regresa de la llamada get
es '¡Vaya, no ha iniciado sesión!' página.
He verificado que click
enlaces de ing en la página que regresa de la llamada post
funciona, pero en realidad no puedo llegar a donde tengo que ir sin JavaScript. Y, por supuesto, lo hice con éxito en el navegador con el mismo nombre de usuario.
¿Qué estoy haciendo mal?
esto es bastante mal, ¿por qué es necesaria una nueva instancia de mecanizado? –
@DitmarWendt esto es solo un ejemplo de cómo volver a utilizar las cookies obtenidas antes después de la publicación de la sesión ejecutada. –