Есть ли способ использовать net / http Руби для публикации данных формы на HTTP-прокси? - PullRequest
0 голосов
/ 26 мая 2010

У меня есть базовая настройка сервера Squid, и я пытаюсь использовать класс Ruby Net :: HTTP :: Proxy для отправки данных формы POST в указанную конечную точку HTTP.

Я предполагал, что смогу сделать следующее:

  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

Но, увы, прокси и классы Net :: HTTP без прокси, похоже, не используют IP-адрес прокси. мой удаленный сервис отвечает, что он получил запрос с неправильного IP-адреса, а именно: не прокси. Я ищу конкретный способ написания процедуры, чтобы я мог успешно отправить сообщение через прокси-сервер. Помогите? :)

Ответы [ 2 ]

0 голосов
/ 04 января 2011

Вы также можете взглянуть на камень механизации, основанный на Perl WWW :: Mechanize. Если это что-то похожее на Perl (и я уверен, что так оно и есть), то оно заключает в себе большую часть общего беспорядка, с которым вы имеете дело.

Рубин: http://mechanize.rubyforge.org/

Perl: http://search.cpan.org/dist/WWW-Mechanize/

0 голосов
/ 27 мая 2010

Ха, оказывается, это правильный способ, моя проблема была на самом деле со Squid и API, к которому я обращался. Интересный совет, связанный с этой проблемой: если вы используете прокси-сервер Squid, возможно, вы захотите добавить этот параметр конфигурации сервера:

header_access X-Forwarded-For deny all

Это обеспечит полное игнорирование прокси-сервером любого отношения к IP-адресу вызывающего абонента в отношении конечной точки HTTP.

...