2010-08-04 14 views
6

Ese es mi código.Cómo implementar cookies en Ruby Net :: HTTP

Ahora tengo que ENVIAR una cookie al host pero no puedo encontrar una solución.


def get_network_file(url=nil) 
    begin 
    http = Net::HTTP.new(@service_server, 80) 
    resp, data = http.get(url, { "Accept-Language" => @locale }) 
    if resp.code.to_i != 200 
     RAILS_DEFAULT_LOGGER.error "*** return code != 200. code = #{resp.code}" 
     return "" 
    end 
    rescue Exception => exc 
     RAILS_DEFAULT_LOGGER.error "*** message --> #{exc.message}" 
     return "" 
    end 
    return data 
    end 
end 

+0

posible duplicado de [galletas Cómo implementar soporte en ruby ​​net/http?] (http://stackoverflow.com/questions/1486703/how-to-implement-cookie-support-in-ruby-net-http) –

Respuesta

5

se pasa a través de las cookies el mismo hash va a enviar el "Accept-Language" cabecera, algo como:

resp, data = http.get(url, { 
    "Accept-Language" => @locale, 
    "Cookie" => "YOUR_COOKIE" 
}) 

Lo más probable es que necesita para capturar la galleta primero, sin embargo. Consulte this para ver ejemplos de manejo de cookies.

+0

Gracias. Lo intentaré. – Juanin

2

Primero debe recuperar las cookies de su servidor de los campos de encabezado "set-cookie" de la respuesta del servidor. Después de haber recuperado la (s) cookie (s), la pasa en el encabezado "cookie" de la solicitud de su cliente.

ya Esta pregunta se hace en How to implement cookie support in ruby net/http?

La respuesta aceptada no está bien a menos que su servidor muestra un conjunto de cookies en cuyo caso es posible que desee mirar en https://stackoverflow.com/a/9320190/1024480

+0

+1 ... segundo enlace mucho más útil. –

Cuestiones relacionadas