submit_form = agent.get("http://sample.com/NewTask.aspx").form("aspnetForm") do |f|
f["ctl00$ContentPlaceHolder1$txtNumber"] = "1234",
f["ctl00$ContentPlaceHolder1$cmbText"] = "test",
f["ctl00$ContentPlaceHolder1$FUpload$fu"] = "",
f["ctl00$ContentPlaceHolder1$btn"] = "test"
f.submit(f.button_with(:name => "ctl00$ContentPlaceHolder1$btnOK"))
end
이 글은 Ruby 용 mechanize lib를 사용하여 자동 제출 양식에 작성한 코드입니다. 다음과 같이 Mechanize::ResponseCodeError
과 함께 다시 나타납니다. 정말 내 코드에 오류가 보이지 않는데, 누군가가 친절하게도 이것이 서버 오류 (서버가 양식 자동 제출을 막는다 고 말했을 때)에 대해 알 수있었습니다.Ruby 폼 자동 제출 Mechanize :: ResponseCodeError
C : /Ruby193/lib/ruby/gems/1.9.1/gems/mechanize-2.4/lib/mechanize/http/agent.rb 29 1 fetch': 500 => Net::HTTPInternalServerError for http://sample.com/NewTask.aspx -- unhandled response (Mechanize::ResponseCodeError) from C:/Ruby193/lib/ruby/gems/1.9.1/gems/mechanize-2.4/lib/mechanize.rb:1207:in
post_form 'C에서의 /Ruby193/lib_main.rb : 515 : submit' from C:/Ruby193/lib/ruby/gems/1.9.1/gems/mechanize-2.4/lib/mechanize/form.rb:178:in
에서 ' from auto_post.rb : 27 : block in <main>' from (eval):23:in
양식에서' from auto_post.rb : 13 : '에있는 lib/ruby / gems/1.9.1/gems/PROX 다음
agent.set_proxy 'localhost', 8888
: '
내부 서버 오류 500이라고 말하면 서버 로그를 확인해야합니다. –
KARASZI István에게 답장을 보내 주셔서 감사합니다. 문제는 서버에 대한 액세스 권한이 없다는 것입니다. 문제를 해결할 수있는 정확한 위치를 찾기 위해 다른 방법이 있습니까? – Tylr
실제 응답을 확인할 수 있습니다. 오류가 내부에있을 수 있습니다 (브라우저에서 'tcpdump'또는 개발자 도구의 네트워크 부분 사용). –