私はいくつかのサードパーティのWeb APIを使用するWebアプリを書いている、と私は広告ホック分析のための低レベルの要求と応答を追跡したいをログに記録するurllib2のを得るのですか。だから私は、HTTP経由で転送されたすべてのバイトを記録するPythonのurllib2を取得するレシピを探しています。多分サブクラス化されたハンドラ?は、どのように私はすべての転送されたバイト
19
A
答えて
12
まあ、私はどのようにセットアップ内蔵のライブラリーのメカニズムをデバッグすることが分かってきました:
import logging, urllib2, sys
hh = urllib2.HTTPHandler()
hsh = urllib2.HTTPSHandler()
hh.set_http_debuglevel(1)
hsh.set_http_debuglevel(1)
opener = urllib2.build_opener(hh, hsh)
logger = logging.getLogger()
logger.addHandler(logging.StreamHandler(sys.stdout))
logger.setLevel(logging.NOTSET)
しかし、私はまだ転送されたすべての情報をダンプする方法を探しています。
2
これはかなり難しいようです。入力または出力データをインターセプトするためのurllib2、urllib、またはhttplib(これが構築されている)にフックはありません。
私には、外部ツール(多くの人がそういったものを使用している)を使用する方法以外に、自分自身で新しいソケットにsocket.socketのサブクラスを書くことがありますモジュール(例えば、 "capture_socket")を作成し、 "import capture_socket; import httplib; httplib.socket = capture_socket"を使用してhttplibに挿入します。必要なすべての参照(httplibで使われている "socket.foo"という形式のもの)を自分のモジュールにコピーしなければならないが、サブクラスでrecv()やsendallあなたがデータで好きなもの。あなたはSSLを使用していた場合
合併症はおそらく生じるであろう、と私はあなたにも同様にあなた自身のsocket._fileobjectを作る必要があるだろうならば、これは十分であるかかどうかはわかりません。しかし、それは可能ですが、httplib.pyのソースを熟読し、標準ライブラリのsocket.pyはもっと詳しく説明します。
関連する問題
- 1. バイトをクライアントに転送するにはどうすればよいですか?
- 2. プログラムによって転送された合計MPIバイト数を取得する
- 3. インストールされているすべてのプラグインを別のジェンキンにどのように転送できますか?
- 4. アスキー文字は8バイト、変換されたワードは32バイトにどのように格納されますか
- 5. ドメインに送信されたすべてのメールを転送する(Google App Engine)
- 6. bluetoothで転送されたバイトをマージする
- 7. 私が送信されたデータの温度にしようとするとどのように私は
- 8. 転送されたデータの量は?
- 9. ショートネームをFQDMに転送するにはどうすればよいですか?私たちのネットワーク上で
- 10. iOSアプリケーションでmallocされたすべてのバイトの実際のバイト数を取得するにはどうすればよいですか?
- 11. 私はどのようにPHPで値を転送できますか?
- 12. Windowsプラットフォームで送受信されたバイト数を取得するにはどうすればよいですか?
- 13. すべてのバイトを単一の配列に、後でxorまたはバイトの間にどのように送るか?
- 14. は私のように定義されたバイトの配列を持つファイル
- 15. は、どのように私はすべてのリスニングの要素
- 16. 転送プロトコルはどのように機能しますか?
- 17. どのように私は送信ボタン
- 18. 私は迂回するにはどうすればよいのウィンドウの「コピー」/ファイル転送ウィンドウ
- 19. は、どのように私はバイトが[] AES
- 20. rsyncによって転送されたファイルの注文
- 21. は、どのように私はすべてのエラー
- 22. は、どのように私はすべてのフィールドと
- 23. Bootstrapで生成されたエラーをErrorControllerに転送するにはどうすればよいですか?
- 24. 地域IPをグローバル転送IPに転送するにはどうすればよいですか?
- 25. どのように私はそれをグーグル、私はWPF で3Dビューでボタンを回転させたいC#コード
- 26. 自動生成されたメールを転送するにはどうすればよいですか?
- 27. は、どのように私はすべてのキーコード に等しくなるようにevent.keyCodeためたい
- 28. UIルータは - どのように私は、ネストされた状態
- 29. は、どのように私は、インポートされたモジュール
- 30. どのSMSが配信されていないか、または送信されていないか調べるにはどうすればよいですか?
+1 2年前には非常に素敵なpythonの質問がアップノートなしで尋ねられました。それは本当に奇妙です。私は自分自身で答えを探しています。私の場合、私はHTTPヘッダーだけに関心があります。 –