2

画像をCDNにアップロードし、そこから画像をリクエストしています。私の質問は、要求された画像がCDNで利用可能かどうかを確認する画像ハンドラーを作成する必要があり、画像が見つからないか、CDNのダウンなどの他のエラーのために要求が失敗した場合、その画像要求をローカル画像にリダイレクトする必要があります位置。これどうやってするの?

たとえば、画像のリクエストの場合、

「http://cdn.images.net/content/images/image1.png」このリクエストは失敗します。その場合、そのリクエストを「http://www.example.com/content/images/images1.png」にリダイレクトする必要があります。

画像ハンドラーを使用してこれを処理するにはどうすればよいですか?

よろしく、Karthik

4

1 に答える 1

0

この目的で HTTP HEAD リクエストを使用できます。そうすることで、HTTP ヘッダーのみを応答として取得できます。簡単な例を次に示します。

public bool ImageExists(string imageUri)
{
    HttpWebRequest request = (HttpWebRequest) WebRequest.Create(imageUri);
    request.Method = "HEAD";

    try
    {
        HttpWebResponse response = (HttpWebResponse) request.GetResponse();

        if (response.StatusCode == HttpStatusCode.OK)
            return true;
        else
            return false;  
    }
    catch
    {
        return false;
    } 
}

...そして、これがどのように呼び出されるかです:

if (ImageExists(firstUri) 
{
    // Download from http://cdn.images.net...
}
else
{
    // Download from http://www.example.com...
}

リモート サーバーでのリクエストの処理方法によっては、レスポンスの MIME タイプがimage/pngかどうかを確認することも役立つ場合があります。

于 2012-08-03T06:31:37.807 に答える