jueves, 17 de diciembre de 2009

HTTPS POST

Hace poco he tenido que hacer submit HTTPS contra otra web desde una aplicación Rails, utilizando un el método POST. El código es el siguiente:


    http = Net::HTTP.new("https://www.otraweb.com", 443)
    http.use_ssl = true
    path = "/login"


    # GET request -> so the host can set his cookies
    resp, data = http.get(path, nil)
    cookie = resp.response['set-cookie']


    # POST request -> logging in
    data = "#{login=#{@username}&password=#{@password}"
    headers = {
        'Cookie' => cookie,
        'Content-Type' => 'application/x-www-form-urlencoded'
    }


    resp, data = http.post(path, data, headers)


en resp.code tendremos el código HTTP de error, y en data el HTML de la petición resultante.