2013-08-21 5 views
5

Я пишу приложение «автоматически заполняю формы» с помощью Ruby/Mechanize. Это почти работает.Как настроить агент механизма Ruby для работы через веб-прокси Charles?

Я могу использовать прекрасный веб-прокси, чтобы увидеть обмен между сервером и браузером Firefox. Теперь я хочу использовать Charles, чтобы увидеть обмен между сервером и моим приложением.

Карт прокси на порту 8888. Предположим, что сервер находится в https://my.host.com. Одна вещь, которая не работает в:

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

Это приводит к 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) 

Так как я даю неправильный аргумент хоста agent.set_proxy(host, ...), или я не настроен должным образом Чарльз. (FWIW, я имел обыкновение делать это, но оба Mechanize и Charles созрели несколько поколений с тех дней halcyon ...)

Любые идеи?

ответ

10

Веб-прокси обычно не определяется только порт, но обычно это полное имя хоста. Чарльз, скорее всего, установлен на локальном хосте. Поэтому для вас может быть выполнена следующая корректировка:

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

Для записи 'tap' не требуется, Mechanize.new дает себя в блок. – pguardiario

+0

Спасибо - я должен был понять, что localhost был правильной. Он почти работает - теперь все, что мне нужно сделать, это получить мои ошибки, связанные с подтверждением сертификата. Различные проблемы ... –

+0

@pguardiario: спасибо за подсказку. отредактировал OP (и мой исходный код) соответственно. –

 Смежные вопросы

  • Нет связанных вопросов^_^