¿Cómo configuro un agente de Ruby Mechanize para que funcione a través del proxy web de Charles?

Estoy escribiendo una aplicación para “completar automáticamente los formularios” usando Ruby / Mechanize. Casi funciona.

Puedo usar el maravilloso proxy web de Charles para ver el intercambio entre el servidor y mi navegador Firefox. Ahora quiero usar a Charles para ver el intercambio entre el servidor y mi aplicación.

Charles proxies en el puerto 8888. Suponga que el servidor está en https://my.host.com . Una cosa que NO funciona es:

@agent ||= Mechanize.new do |agent| agent.set_proxy("my.host.com", 8888) end 

Esto resulta en una Net::HTTP::Persistent::Error :

 ...lib/net/http/persistent.rb:579:in `rescue in connection_for': connection refused: my.host.com:8888 (Net::HTTP::Persistent::Error) 

Entonces, o le estoy dando el argumento de host incorrecto a agent.set_proxy(host, ...) , o no he configurado a Charles correctamente. (FWIW, solía ser capaz de hacer esto, pero tanto Mechanize como Charles han madurado varias generaciones desde esos días de halcyon …)

¿Algunas ideas?

Un proxy web normalmente no se define solo por un puerto, pero generalmente es un nombre de host completo. Charles es muy probable que esté instalado en localhost. Por lo tanto, el siguiente ajuste puede funcionar para usted:

 @agent ||= Mechanize.new do |agent| agent.set_proxy("localhost", 8888) end 
    Intereting Posts