Hi!
I was trying to do an http request using gem httpclient.
First at all i have to login with user and pass, if the user and pass is
correct the server send me a cookie that i have to use to other request
My code is:
c = HTTPClient.new
c.debug_dev = STDOUT
c.set_cookie_store('cookie.dat')
request = {"user"=>"user","pass"=>"pass"}
uri = "http://localhost/index.php"
res = c.post(uri,request,:follow_redirect => true)
puts "SALIDA: \n\n"+res.content
c.save_cookie_store
If i look the console i can see that all is correct but i can't see
enything when i puts res.conten or res.body. Why?
And if i have to do more request's how do i pass the cookie to the
server?
Thank's
on 2012-12-03 23:22
on 2012-12-07 08:16
Mariano Alejandro wrote in post #1087722: > Hi! > I was trying to do an http request using gem httpclient. > First at all i have to login with user and pass, if the user and pass is > correct the server send me a cookie that i have to use to other request > My code is: > > c = HTTPClient.new > c.debug_dev = STDOUT > c.set_cookie_store('cookie.dat') > request = {"user"=>"user","pass"=>"pass"} > > uri = "http://localhost/index.php" > res = c.post(uri,request,:follow_redirect => true) > puts "SALIDA: \n\n"+res.content > c.save_cookie_store > > If i look the console i can see that all is correct but i can't see > enything when i puts res.conten or res.body. Why? > Your code works fine for me. If you write web programs, then you need to setup a server on your computer, so that you can test your web programs. That will enable you to write simple cgi programs to echo back some information, like the name/value pairs sent to the server in a query string(GET) or in the body of the request(POST); or set a cookie and see if it comes back in a second request. If the first line of the response is "HTTP/1.1 200 OK" and there is no resp.content, then the server didn't send anything back to your program. > And if i have to do more request's how do i pass the cookie to the > server? > Thank's httpclient automatically handles cookies for you--you don't have to do anything. httpclient will send back any cookies that were set by the server while your program is running. If you want to save the cookies for the next time you run your program, that's when you use set_cookie_store() and save_cookie_store(). Also, you should not be using :follow_redirect with a POST request: - (Object) post(uri, *args, &block) Sends POST request to the specified URL. See request for arguments. You should not depend on :follow_redirect => true for POST method. It sends the same POST method to the new location which is prohibited in HTTP spec.
Please log in before posting. Registration is free and takes only a minute.
Existing account
(Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
Log in with Google account | Log in with Yahoo account
No account? Register here.