2013-10-10 5 views
0

Ruby에서 Net :: HTTP를 사용하여 게시물 요청을 만들고 싶습니다. 웹 사이트는 같은 수 있습니다 :Ruby에서 POST POST 만들기

<form method="post" action="login.php"> 
    <tr><td><input type="text" name="id" /></td></tr> 
    <tr><td><input type="password" name="password" /></td> 
    <td> <input type="submit" name = "submit" value="Login" /> </td></tr> 
</form> 

는 :: HTTP는 루비, 루비 스크립트처럼 그물의 예를 다음과 같습니다

uri = URI('http://www.example.com/login.php') 
req = Net::HTTP::Post.new(uri) 
req.set_form_data('id' => 'myid', 'password' => 'mypassword', 'submit' => 'Login') 
res = Net::HTTP.start(uri.hostname, uri.port) do |http| 
    http.request(req) 
end 

내가 res가에서 로그인 후 페이지해야하지만, 가정 로그인 성공하지 못했습니다. 문제가 무엇입니까?

+0

게시물이 정상입니다. 코드를 실행했을 때 발견 한 내용을 알려주지 못한 것뿐입니다. –

+0

전체'res', 헤더 및 본문을 보는 것이 도움이 될 것입니다. 왜냐하면'res.body '가 다른 페이지라고 가정하지 않기 때문입니다. 헤더에 쿠키와 리디렉션이 표시되는 것으로 가정합니다. 그리고 당신은 자신을 리디렉션 처리해야합니다. – spickermann

답변

1

"로그인이 성공적이지 않다"는 것은 무엇을 의미합니까? 응답에서 "유효하지 않은 암호"또는 무엇인가를 알려줍니까? 또는 귀하가 생각해야 할 응답이지만, 후속 요청이 "로그인"되기를 기대하지만, 그렇지 않습니까? 후자의 경우 다음 요청으로 쿠키를 전달합니까? 어쩌면 Mechanize을 고려해야합니다.

+0

res.body를 출력하고 여전히 login.php입니다. 그리고 암호가 전혀 테스트되지 않은 것으로 보입니다. – melodrama

+0

아무 생각없이, 코드는 나에게 잘 보입니다. 기계에 대한 – Amadan

+0

+1 –