Ruby 버전의 Mechanize를 사용하여 이동하지 않는 티켓 관리 시스템에서 내 고용주의 티켓을 추출하는 것은 API를 제공하지 않습니다.Mechanize 요청 간의 쿠키 유지
문제는 기계화는 아래의 post
전화와 get
통화 사이의 쿠키를 유지하지 않는 것입니다 :
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
가있는 사이트의 로그인 페이지 포스트에 URL이고, 나는했습니다 이것이 실제로 로그인하는 것을 확인했습니다. 그러나 get
전화에서 반환되는 페이지는 '죄송합니다, 로그인하지 않았습니다!'입니다. 페이지.
post
콜에서 돌아 오는 페이지에 click
보내는 링크가 있지만 사실 JavaScript가 필요한 곳으로 이동할 수 없다는 것을 확인했습니다. 물론 동일한 로그인으로 브라우저에서 성공적으로 수행했습니다.
내가 뭘 잘못하고 있니?
입니다 다음과 같이 은 간단하게 할 수있는하는
gem install mechanize --pre
을 최신을 설치하고이 후gem uninstall mechanize 'some_version'
을 기계화의 이전 버전을 제거해야합니다하려면 나쁜, 왜 새로운 기계화 인스턴스가 필요합니까? –@DitmarWendt 이것은 로그인 포스트가 실행 된 후 이전에 얻은 쿠키를 재사용하는 방법에 대한 예제 일뿐입니다. –