2013-08-21 2 views
5

私はRuby/Mechanizeを使って "フォームに自動的に記入"しています。それはほとんど動作します。Ruby MechanizeエージェントをCharles Webプロキシを介して動作するように設定するにはどうすればよいですか?

私はすばらしいCharlesウェブプロキシを使って、サーバーと私のFirefoxブラウザとのやりとりを見ることができます。今私はチャールズを使ってサーバーと私のアプリケーションとのやりとりを見たいと思っています。

チャールズ・プロキシ(ポート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の両方は、それらの休日以来、いくつかの世代を成熟させました...)

アイデア?

答えて

10

ウェブプロキシは通常で定義されていません。ちょうどポートですが、通常は完全なホスト名です。 Charlesはローカルホストにインストールされている可能性が非常に高いです。したがって、以下の調整があなたのために働くかもしれません:

+3

レコードのために、 'tap'は不要です、Mechanize.newはそれ自身をブロックにもたらします。 – pguardiario

+0

ありがとう - 私はlocalhostが正しいことを認識していたはずです。それはほとんど動作します - 私がしなければならないのは、私の '証明書検証失敗'エラーが発生したことだけです。別の問題... –

+0

@pguardiario:チップのおかげで。それに応じてOP(と私のソースコード)を編集しました。 –

関連する問題