我正在制作一个包含图片的C#商店应用。我从网站上获取了图片,例如:http://www.gravatar.com/avatar/6810d91caff032b202c50701dd3af745?d=identicon&r=PG
我有2张图片,1张是实际产品的图片。 1图像是没有可用图像的图像。现在我想检查给定URL后面是否有图片,如果没有,我想加载没有图像的图像。
我有一个对象产品,其中包含itemnumber,description和imagepath。在这一点上,我只是这样做。
var url = "http://www.gravatar.com/avatar/6810d91caff032b202c50701dd3af745?d=identicon&r=PG";
Product p = new product (123, "productdescription", url);
if(url //如果没有给出结果){p.url = imgpath2} //文件路径没有图像可用图片
如何简单检查给定网址是否包含图片,还是会给我一个"网页不可用" /没有内容可用错误?提前谢谢。
编辑:注意*我正在使用visual studio 2013,我正在构建一个C#商店应用程序。
答案 0 :(得分:3)
无需下载整个图像,只需使用HEAD:
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("url");
request.Method = "HEAD";
bool exists;
try
{
request.GetResponse();
exists = true;
}
catch
{
exists = false;
}
有关详情,请查看this post以获取有关您的问题的帮助:
[更新:如果您想以异步方式拨打电话...]
// Initialize your product with the 'blank' image
Product p = new Product(123, "productdescription", imgpath2);
// Initialize the request
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("url");
request.Method = "HEAD";
// Get the response async
Task<WebResponse> response = request.GetResponseAsync();
// Get the response async
response.AsAsyncAction().Completed += (a, b) =>
{
// Assign the proper image, if exists, when the task is completed
p.URL = url;
};
答案 1 :(得分:0)
试试这个:
var url = "http://www.gravatar.com/avatar/6810d91caff032b202c50701dd3af745?d=identicon&r=PG";
if(File.Exists(url)){
Product p = new product (123, "productdescription", url);
}
else{
Product p = new product (123, "productdescription", imgpath2);
}
如果文件存在则应返回true,否则返回false。
如果您想了解如何找出网址是否为您提供任何响应,您还可以查看以前的主题: C# How can I check if a URL exists/is valid?