2011-12-13 17 views
6

ヘッダーフィールドを含まないリクエストを作成するにはどうすればよいですか?リクエストは自分のサーバ実装に最初から送信されますが、ヘッダフィールドは気にしません。リクエストには、たいていは投稿体のみが含まれます。私が何か論理的に欠けているかどうか教えてください。NSMutableURLRequestでヘッダーを削除するにはどうすればよいですか?

ASIHTTPRequestについて教えてください。ありがとうございました。

+0

この回答はこれまでありませんでしたか?すべてのヘッダーを削除しようとしていますが、ここの応答は今日は機能していないようです。 – Jan

答えて

1
  1. なぜサーバーの実装を制御する場合、無視しないのですか?

  2. [request setAllHTTPHeaderFields:[NSDictionary dictionary]]は機能しますか? #2が動作しなかった場合は

  3. valueForHTTPHeaderField:方法から独自常にallHTTPHeaderFieldsメソッドから空の辞書を返しサブクラス、およびnilを作ってみてください。しかし、NSURLConnectionはあなたの要求のコピーを作るかもしれないので、copyWithZone:も無効にする必要があります。 forHTTPHeaderField:nilの値と実際にそれを削除し

+0

#1この実装ではすべてのバイトが問題を保存しました。 –

+0

#2は内部ディクショナリをオーバーライドしないため動作しません。もしあれば、キーをオーバーライドするだけです。サブクラス化を見て、それが役立つかどうかを教えてください。 –

9

私はNSMutableURLRequest上の特定のヘッダを削除したかったように、私はちょうど呼び出しのsetValueがあることがわかりました。

これはAppleによって文書化されていませんが、かなり論理的です。

+4

Googleでこのページを見つけたユーザーのために - これはもう機能しません(私は10.8 SDKを使用しています)。これをnilに設定すると、User-Agentはまったく変更されません。 – wecing

+0

カスタムヘッダー(私はUser-Agentをテストしませんでした)を使ってiOS 6.1 SDKで動作します。 –

0

私はヘッダフィールドの一部に使用して

[request addValue:nil forHTTPHeaderField:@"User-Agent"]; 

実際に、ヘッダフィールドを削除しないではなく、nilにヘッダー値を設定し、(「ユーザーエージェント」はそのうちの一つである)ことがわかりましたそれをデフォルト値に設定します!

あなたが実際にコンテンツを削除したい場合は、それは私にとって

[request addValue:@"" forHTTPHeaderField:@"User-Agent"]; 
1

と空の文字列に値を設定するに十分であるコード

[request addValue:@"" forHTTPHeaderField:@"User-Agent"]; 

は、空の文字列の代わりに掃除を追加しましたユーザーエージェント。 代わりに、setValueを使用して固定しました。

[request setValue:@"" forHTTPHeaderField:@"User-Agent"]; 
+0

これは正解であることに注意してください。 addValueは新しい値をカンマ区切りの前の値に追加します。 setValueは前の値を置き換えます。 –

関連する問題