私のアプリでは、サーバーにリクエストを送信すると、応答でURLまたはpdfまたは画像を取得し、それに基づいて結果を表示します(url-> webview、image-> imageviewなど)。しかし、方法がわかりません応答が url か、pdf か、画像かを識別しますか?
どうすればこれを達成できるか知っている人はいますか?
前もって感謝します!
私のアプリでは、サーバーにリクエストを送信すると、応答でURLまたはpdfまたは画像を取得し、それに基づいて結果を表示します(url-> webview、image-> imageviewなど)。しかし、方法がわかりません応答が url か、pdf か、画像かを識別しますか?
どうすればこれを達成できるか知っている人はいますか?
前もって感謝します!
本当にこれを行う必要がある場合は、ファイルヘッダーを読み取ることができますが、お勧めしません。これは、リモート画像のサイズを取得するために作成したカテゴリです。ファイルが実際に画像であるかどうかを検出するように調整できます。また、同様のストリーム解析を実行して、PDFヘッダーを検索できます:%PDF-1.0など。それ以外の場合は、URLであると想定します。
NSURLConnection を使用してファイルをダウンロードしていると思います。というわけで、このデリゲートメソッドを実装して……
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
...応答をNSHTTPURLResponseにキャストし、 allHeaderFieldsからContent-Type値を取得します。
ただし、ファイルをダウンロードするために実際に何を使用するかによって異なります。別のクラス/フレームワーク/...を使用する場合は、アイデアが得られます。
PDFまたはサーバーからの画像URLの両方の場合にUIWebviewを使用することをお勧めします。
[imgwebVw loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:strImgURL]]];