問題タブ [browsermob-proxy]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - Selenium で browsermob-proxy を使用しようとすると、不適切な置換エラーが発生する
ubuntu システムで、python-selenium テストで「browsernmob-proxy」を使用しようとしています。こちらのドキュメントに従って、「browsermob-proxy」をインストールし、次の python コードを試しました。
しかし、これはすぐに次のエラーで失敗しました:
これを修正する方法はありますか?
私も使ってみました
代わりに、これは次のエラーで失敗しました:
補遺
- おそらく
browsermob-proxy
、ポート 8088 または 8089 でチューニングすることはできたでしょう (正確にはわかりません) が、サンプル コードはまだ実行されません ....
python - HTTP 応答で使用される base64 の種類は何ですか?
Browser Mob Proxy (browsermob-proxy Python パッケージを使用) を使用して、Selenium によって行われた HTTP 要求をキャッチしています。私の HAR ファイルには、次のように表示されます (Javascript ファイルである必要があります)。
ただし、を使用してデコードする場合text
は、content
常に次のエラーが表示されます。
そのような文字列をデコードする適切な方法は何ですか?
追加するために編集
この問題は、rfc1341 の次の行から発生していると想定しています。「base64 データの CRLF シーケンスは、引用された印刷可能な改行に変換する必要がありますが、テキスト データを変換する場合のみ」というのは、デコードが画像で正常に機能するためです。
ただし、base64 データの CRLF シーケンスとは何か、およびその変換方法はまだ理解していません。
browsermob-proxy - browsermob-proxy にすべての応答本文を記録させるにはどうすればよいですか
browsermob-proxy とその har エクスポート機能に問題があります。一部の応答本文がログに記録されません (「テキスト」フィールド全体が欠落しています)
私のセットアップ (browsermob-proxy 2.1.4 を使用)
curl -X POST http://localhost:8080/proxy?port=9091
curl -X PUT "http://localhost:8080/proxy/9091/har?captureHeaders=true&captureCookies=true&captureContent=true"
いくつかの応答は問題ありません:
"response": {
"status": 201,
"statusText": "Created",
"httpVersion": "HTTP/1.1",
"cookies": [],
"headers": [{
"name": "Cache-Control",
"value": "max-age=0, no-cache, no-store"
}, {
"name": "Content-Type",
"value": "application/json"
}, {
"name": "Date",
"value": "Thu, 15 Feb 2018 13:07:39 GMT"
}, {
"name": "Location",
"value": ...
}, {
"name": "Pragma",
"value": "no-cache"
}, {
"name": "Render-Time",
"value": "8"
}, {
"name": "Server",
"value": "openresty"
}, {
"name": "Strict-Transport-Security",
"value": "max-age=31536000; includeSubDomains"
}, {
"name": "transfer-encoding",
"value": "chunked"
}, {
"name": "Connection",
"value": "keep-alive"
}],
"content": {
"size": 8607,
"mimeType": "application/json",
"text": "{ <actual json body> }",
"comment": ""
}, ...
しかし、そうでないものもあります (おそらく、それは特別なコンテンツ/MIME タイプですか? それとも、gzip コンテンツ エンコーディングですか?)
"response": {
"status": 200,
"statusText": "OK",
"httpVersion": "HTTP/1.1",
"cookies": [],
"headers": [{
"name": "Cache-Control",
"value": "max-age=0, no-cache, no-store"
}, {
"name": "Content-Encoding",
"value": "gzip"
}, {
"name": "Content-Type",
"value": "application/some.custom.type-v1+json"
}, {
"name": "Date",
"value": "Thu, 15 Feb 2018 13:07:39 GMT"
}, {
"name": "Pragma",
"value": "no-cache"
}, {
"name": "Render-Time",
"value": "92"
}, {
"name": "Server",
"value": "openresty"
}, {
"name": "Strict-Transport-Security",
"value": "max-age=31536000; includeSubDomains"
}, {
"name": "Vary",
"value": "Accept-Encoding"
}, {
"name": "Content-Length",
"value": "1978"
}, {
"name": "Connection",
"value": "keep-alive"
}],
"content": {
"size": 7429,
"mimeType": "application/some.custom.type-v1+json",
"comment": ""
< there's nothing else here!! >
},
"redirectURL": "",
"headersSize": 444,
"bodySize": 1978,
"comment": ""
}, ...
そうそう、どちらのリクエストも https 経由であり、MITM を使用しています。