2010-05-26 18 views
0

J'ai une configuration de base du serveur Squid et j'essaie d'utiliser la classe Net :: HTTP :: Proxy de Ruby pour envoyer un POST de données de formulaire à un point de terminaison HTTP spécifié.est-il un moyen d'utiliser Ruby net/http pour poster des données de formulaire à un proxy http?

Je suppose que je pouvais faire ce qui suit:

Net::HTTP::Proxy(my_host, my_port).start(url.host) do |h| 
    req = Net::HTTP::Post.new(url.path) 
    req.form_data = { "xml" => xml } 
    h.request(req) 
    end 

Mais, hélas, proxy par rapport à des classes Net :: HTTP non-proxy ne semblent pas utiliser l'adresse IP du proxy. mon service distant répond en me disant qu'il a reçu une demande de la mauvaise adresse IP, à savoir: pas le proxy. Je suis à la recherche d'un moyen spécifique d'écrire la procédure, afin que je puisse envoyer un formulaire avec succès via un proxy. Aidez-moi? :)

+0

Ça vous dérange si j'ajouter un exemple basé sur ce code à http://github.com/augustl/net-http-cheat-sheet? Aussi, n'hésitez pas à fourchette et ajoutez-le vous-même :) –

+0

chose sûre! ça serait bien. –

Répondre

0

Hah, s'avère que c'est la bonne façon de le faire, mon problème était en fait avec Squid et l'API que je poussais à. astuce intéressante liée à ce problème, si vous mandatement avec le serveur proxy Squid, vous voulez probablement ajouter cette option de configuration du serveur:

header_access X-Forwarded-For deny all 

Cela fera en sorte que le proxy ignore complètement toute relation avec l'adresse IP de l'appelant comme loin que le point de terminaison HTTP est concerné.