2010-05-26 4 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é.

Questions connexes