Tôi đang cố sử dụng phiên bản Ruby của Mechanize để trích xuất vé của nhà tuyển dụng của tôi từ hệ thống quản lý vé mà chúng tôi di chuyển ra khỏi đó không cung cấp API.Duy trì cookie giữa Yêu cầu cơ chế
Vấn đề là, có vẻ như mechanize không được giữ các cookie giữa post
cuộc gọi và get
cuộc gọi hiển thị dưới đây:
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
là URL mà POSTS trang đăng nhập của trang web, và tôi đã xác minh rằng điều này thực sự đăng nhập tôi. Nhưng trang trả về từ cuộc gọi get
là 'Rất tiếc, bạn chưa đăng nhập!' trang.
Tôi đã xác minh rằng các liên kết ing click
trên trang trả về từ cuộc gọi post
hoạt động, nhưng tôi thực sự không thể truy cập vào nơi tôi cần mà không cần JavaScript. Và tất nhiên tôi đã thực hiện thành công trên trình duyệt với cùng một thông tin đăng nhập.
Tôi đang làm gì sai?
này là khá xấu, tại sao một ví dụ cơ giới mới cần thiết? –
@DitmarWendt đây chỉ là một ví dụ làm thế nào để tái sử dụng các tập tin cookie thu được trước đó sau khi đăng nhập thực hiện. –