5

Ruby / Mechanize を使用して「フォームに自動入力」アプリを作成しています。それはほとんど動作します。

すばらしいCharles Web プロキシを使用して、サーバーと Firefox ブラウザーの間のやり取りを確認できます。次に、Charles を使用して、サーバーとアプリの間のやり取りを確認します。

Charles はポート 8888 でプロキシします。サーバーがhttps://my.host.comにあるとします。機能しないことの1つは次のとおりです。

@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, ...)、Charles を適切に構成していません。(FWIW、私はこれを行うことができましたが、MechanizeとCharlesの両方がその平穏な時代から数世代成熟しています...)

何か案は?

4

1 に答える 1

10

通常、Web プロキシはポートだけでは定義されませんが、通常は完全なホスト名です。Charles は localhost にインストールされている可能性が非常に高いです。したがって、次の調整が有効な場合があります。

@agent ||= Mechanize.new do |agent|
  agent.set_proxy("localhost", 8888)
end
于 2013-08-21T06:13:04.447 に答える