Charles Proxyを使用して、テスト目的でAPIからの応答を書き換えています。
ブレークポイントを設定すると、生の応答を完全に書き換えることができます。
ただし、「書き換え」ツールを使用して自動化する場合は、行き詰まります。ステータスコードを変更できないようです。
私が何かを逃しているのを知っていますか?
更新:Charles Proxyのバージョン3.8がリリースされたばかりで、ステータスを書き換えることができます。 リリースノート から:
このバージョンの書き換えUIは、新しい「応答ステータス」ルールタイプを追加します。
Charles 3.8+を使用して、ステータスコードを書き換えることができます。
書き換えツールで、「タイプ:応答ステータス」を選択します。一致フィールドと置換フィールドでは、Charlesは着信および書き換えられたステータスが"\d{3} .*"
。つまり、書き換えられたステータスには、数値ステータスコードに加えてメッセージ部分が必要です。
例えば:
一致値:201。*
置換値:502 Bad Gateway
置換値からメッセージを省略すると、ステータス行は書き換えられません。 Charlesの書き換えツールの出力メッセージは、各通話の概要の[メモ]セクションで確認できます。
これはあなたの質問に対する直接的な答えではありませんが、上記のコメントで述べたように、私は同じ状況にあり、私にとってうまく機能する別のツールを使用して解決策を見つけました。
Charlesの代わりに mitmproxy を実行します。具体的には mitmdump で、この短いPython スクリプトの書き換え :
#!/usr/bin/env python
def response(context, flow):
if '/somePath' not in flow.request.path:
return
flow.response.status_code = 404
プロキシにフックするには、次のようにmitmdump
を実行します。
mitmdump -s /path/to/rewriting-script.py
そしてそれは素晴らしく機能します。
OS Xを使用していますが、ネットワークインターフェースのWebプロキシを127.0.0.1ポート8080に設定しました。
最終編集:Marc Liyanageの答えは、この質問に対して今最も正確です。
いいえ、そうではありません。ステータスコードを書き換えることは不可能だと思います。
これをコメント(新しいユーザー)として追加することはできませんが、1つの回避策は次のとおりです。
これに最適なMap Localを使用してみましたが、Charlesは返されたすべてのファイルに独自の200 OKステータスコードを追加しました。
編集:また、個々の応答にブレークポイントを使用して、コードを変更できます。