3

メソッドを使用せずに NSHTTPURLResponse のヘッダーを変更することは可能ですか?

initWithURL:statusCode:HTTPVersion:headerFields:

新しいカスタマイズされた NSHTTPURLResponse を作成するには

4

1 に答える 1

4

応答オブジェクトは、 と呼ばれる NSDictionary を返しますallHeaderFields。その辞書を直接変更できれば理想的ですが、それは NSMutableDictionary ではありません。つまり、次の 2 つのいずれかしか実行できません。

  • 現在の辞書の変更可能なコピーを作成し、allHeaderFieldsそれを新しい NSHTTPURLResponse で使用します (新しい NSHTTPURLResponse を作成したくないと言ったのは知っていますが、それが最も簡単な解決策です。元の応答から他の値を取得し、元の の値で初期化された NSMutableDictionary を作成し、allHeaderFieldsなりすましに必要なフィールドを編集し、それを新しい応答にプラグインします。)

  • それ以外の場合は、allHeaderFields オブジェクトを変更できる NSHTTPURLResponse のカスタム サブクラスを実装できます。ここでそれを行う方法の基本を詳述する素晴らしい答えですが、もう少し遠回りのようです。非常に多くの HTTP ヘッダー フィールドをオーバーライドする必要がある場合にのみ、これを使用します。

于 2012-07-13T04:39:06.097 に答える