0

goagent の初期バージョンを読んでいますが、do_CONNECT メソッドがどこで呼び出されているのかわかりません。

class GaeProxyHandler(BaseHTTPServer.BaseHTTPRequestHandler):
    ...
    def do_CONNECT(self):
        ...

次のページの同じメソッドも呼び出されていません。 ここをクリック

はい、「do_CONNECT」で検索してもほとんど出てこないのですが、「http method CONNECT」で検索すると

4

2 に答える 2

1

GaeProxyHandler の基本クラスは BaseHTTPRequestHandler であるため、コードは BaseHTTPRequestHandler で記述できます。

プロキシを実行する場合は、次のコードを実行する必要があります。

server = LocalProxyServer((common.LISTEN_IP, common.LISTEN_PORT), GAEProxyHandler)
server.serve_forever()

したがって、サーバー自体がメソッド do_CONNECT の呼び出しに関するコードを記述する可能性があることがわかります。

バックトレースを見てみましょう。実際にそうです。

  File "E:\Python33\lib\threading.py", line 616, in _bootstrap
    self._bootstrap_inner()
  File "E:\Python33\lib\threading.py", line 639, in _bootstrap_inner
    self.run()
  File "E:\Python33\lib\threading.py", line 596, in run
    self._target(*self._args, **self._kwargs)
  File "E:\Python33\lib\socketserver.py", line 610, in process_request_thread
    self.finish_request(request, client_address)
  File "E:\Python33\lib\socketserver.py", line 345, in finish_request
    self.RequestHandlerClass(request, client_address, self)
  File "E:\Python33\lib\socketserver.py", line 666, in __init__
    self.handle()
  File "E:\Python33\lib\http\server.py", line 400, in handle
    self.handle_one_request()
  File "E:\Python33\lib\http\server.py", line 388, in handle_one_request
    method()
  File "E:\eclipse\workspace\GoAgent\src\goagent-local\proxy.py", line 1758, in **do_CONNECT**

最後のdo_CONNECTを参照してください。

于 2013-09-01T16:59:29.083 に答える