2

我们已将图像上传到 CDN 并从那里请求图像。我的问题是,我需要编写一个图像处理程序来检查请求的图像在 CDN 中是否可用,并且由于找不到图像或 CDN 关闭等其他错误,请求失败,我必须将该图像请求重定向到本地图像地点。我怎样才能做到这一点?

例如,如果请求图像,

“http://cdn.images.net/content/images/image1.png”这个请求失败,那么我应该将该请求重定向到“http://www.example.com/content/images/images1.png”。

我如何使用图像处理程序来处理这个问题?

问候, 卡提克

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 回答