我们已经将图像上传到CDN,并从那里请求图像。我的问题是,我需要编写一个图像处理程序来检查请求的图像是否在CDN中可用,但由于找不到图像或CDN宕机等其他错误,请求失败,我必须将该图像请求重定向到本地图像位置。我该怎么做?
例如,如果请求图像,
"http://cdn.images.net/content/images/image1.png"此请求失败,那么我应该将该请求重定向到"http://www.example.com/content/images/images1.png".
如何使用图像处理程序处理此问题?
谨致问候,Karthik
您可以为此目的使用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也可能很有用。