잘못 설계된 웹 서버와 통신하려고하지만 여전히 처리하고 싶습니다. 문제는 로그인 양식을 제출할 때 URI 안에 메시지를 포함 시키려합니다. 그러면 URI 라이브러리가 중지됩니다.Mechanize를 사용하여 잘못된 URI로 리디렉션 됨 잘못된 URI 오류가 발생 함
서버 맞아
/path/ConvolutedNameForMenuPage.menu?name=bmenu.P_MainMnu&msg=WELCOME+<b>Welcome,+Jonathan+Allard,+to+our+poorly+designed+Administrative+Systems!<%2Fb>Dec+07,+201102%3A27+PM
에 저를 리디렉션, 그것을 내가 다시 얻기 위해 요청 하죠 리디렉션 URI, 내부 나에게 구문 분석되지 않은 HTML 코드를 통과하려고. 쉐 쉬, 표준!
그리고 지금 눈에 띄게 열정적 같은 나쁜 관행 화가 URI를 라이브러리는, 내가 당신의 고통, URI
LIB를 느낄
URI::InvalidURIError: bad URI(is not URI?): /path/ConvolutedNameForMenuPage.menu?name=bmenu.P_MainMnu&msg=WELCOME+<b>Welcome,+Jonathan+Allard,+to+our+poorly+designed+Administrative+Systems!<%2Fb>Dec+07,+201102%3A27+PM from /home/jon/.rbenv/versions/1.9.3-p0/lib/ruby/1.9.1/uri/generic.rb:1202:in `rescue in merge'
from /home/jon/.rbenv/versions/1.9.3-p0/lib/ruby/1.9.1/uri/generic.rb:1199:in `merge'
from /home/jon/.rbenv/versions/1.9.3-p0/lib/ruby/gems/1.9.1/gems/mechanize-2.0.1/lib/mechanize/page/meta_refresh.rb:32:in `parse'
from /home/jon/.rbenv/versions/1.9.3-p0/lib/ruby/gems/1.9.1/gems/mechanize-2.0.1/lib/mechanize/page/meta_refresh.rb:41:in `from_node'
from /home/jon/.rbenv/versions/1.9.3-p0/lib/ruby/gems/1.9.1/gems/mechanize-2.0.1/lib/mechanize/page.rb:282:in `block in meta_refresh'
from /home/jon/.rbenv/versions/1.9.3-p0/lib/ruby/gems/1.9.1/gems/nokogiri-1.5.0/lib/nokogiri/xml/node_set.rb:239:in `block in each'
from /home/jon/.rbenv/versions/1.9.3-p0/lib/ruby/gems/1.9.1/gems/nokogiri-1.5.0/lib/nokogiri/xml/node_set.rb:238:in `upto'
from /home/jon/.rbenv/versions/1.9.3-p0/lib/ruby/gems/1.9.1/gems/nokogiri-1.5.0/lib/nokogiri/xml/node_set.rb:238:in `each'
외친다.
이제 URI를 정확히 구문 분석하고 URI를 올바르게 구문 분석 (또는 그냥 삭제)하고 아무 일도 일어나지 않은 것처럼 다시 제출할 수 있습니까? 아니면 URI와 Mechanize 사이의 버그입니까?
요청을 구조 블록에 넣으시겠습니까? 어쩌면 코드를 보여줘야 할 것입니다. – pguardiario
@pguardiario 이보다 훨씬 복잡하지 않습니다. 그것은 기본적으로'uri.merge ('<')'이고 나는 리다이렉트에 머물러있다. 또한 URI가 매번 오류를 throw하므로 구조 할 필요가 없습니다. –
그래서 uri.merge ('<')를 직접 호출하고 있습니까? 왜 그것을하고 있습니까? 코드를 보여 주면 우리가 말하는 것에 대해 추측 할 필요가 없습니다. – pguardiario