2012-04-18 6 views
9

NSURLProtocolClientプロトコルには、-URLProtocol:wasRedirectedToRequest:redirectResponse:というメソッドが含まれています。NSURLProtocolサブクラスのインスタンスは、その要求がリダイレクトされたことをURLプロトコルクライアントに伝えるために使用されます。しかし、URLプロトコルがリダイレクトされたURLからリソースを取得しようとしているのか、またはクライアントがそのリソースに対して新しいリクエストを発行するのかについてはわかりません。カスタムNSURLProtocolはリダイレクトされる必要がありますか、またはクライアントがそれを心配する必要がありますか?

リダイレクトの場合に元のURLプロトコルオブジェクトが何をするべきか教えてください。

答えて

3

この質問に答えるために、リダイレクトレスポンスで指定されたリンクに続くURLプロトコル実装のコードを削除しました。接続クライアントが新しいURLをロードするための新しい接続を作成する場合は、かなり明白です。結局のところ、何も起こらなかった - クライアントは決して新しい接続を作成せず、リダイレクトは追跡されません。これから、私は、URLプロトコル自体がリダイレクト応答で与えられたURLを読み込もうと試みるべきだと結論づけなければなりません。

+0

私自身のURLプロトコルを実装しようとしています。その中で、プロトコルに自動的にリダイレクトされたURLをロードし、それをURLロードシステムに送信したいとします。レスポンスでURL:keyをリダイレクトされたURLに変更するだけで十分ですか、それ以上の処理が必要ですか? – Ravi

+1

これを計算していただきありがとうございます。私が見たNSURLProtocolチュートリアルでは、リダイレクトの処理については触れていません。 – bugloaf

関連する問題