【发布时间】:2015-07-18 12:02:46
【问题描述】:
我有一些代码正在使用the solution from this question 来验证某个图片网址是否存在。
所以我的代码如下所示:
private bool PictureExists(string id)
{
string url = "https://www.example.com/profile.do?userid=" + id;
var request = (HttpWebRequest)HttpWebRequest.Create(url);
request.Method = "HEAD";
bool exists;
try
{
request.GetResponse();
exists = true;
}
catch
{
exists = false;
}
return exists;
}
}
如果图片不存在,此函数将返回 false 并且工作正常。
现在的问题是该函数开始返回 true,我发现根本原因是如果我要搜索的内容不存在,他们已更改后端以返回默认图像。
所以我的新要求是如何检查返回的图像是否不是默认图像(这样我就可以复制之前的验证)?
【问题讨论】:
-
Head 通常会返回大小 - 检查它可能就足够了(如果您可以容忍的话,可能会出现错误结果)。
-
检查头部大小的正确方法是什么?
-
您可以存储默认图像的哈希值并计算下载图像的哈希值,如果它们匹配则它是默认图像。如果有多个默认图像,则需要存储每个图像的哈希值并进行比较。
-
@leora 内容长度标头 - stackoverflow.com/questions/3854842/… 。因此,如果网站总是返回相同的“missing-picture.png”,它将具有 HEAD 可能返回的相同大小...
标签: c# image httpwebrequest