Webアプリケーションでは、最初に画像が存在するかどうかを確認してから、この画像またはダミー画像を表示する必要があります。
私は次のコードを使用し、次のようなURLで機能します。
- " http://www.somedomain.com/niceimage.png "
- 「https://www.somedomain.com/niceimage.png」。
public virtual bool WebResourceExists(string url)
{
WebHeaderCollection headers = null;
WebResponse response = null;
try
{
WebRequest request = WebRequest.Create(url);
request.Method = "HEAD";
response = request.GetResponse();
headers = response.Headers;
bool result = int.Parse(headers["Content-Length"]) > 0;
return result;
}
catch (System.Net.WebException)
{
return false;
}
catch (Exception e)
{
_log.Error(e);
return false;
}
finally
{
if (response != null)
{
response.Close();
}
}
}
いくつかの場所では、メソッドはのようなプロトコルに依存しないURLで呼び出されます"//www.somedomain.com/niceimage.png"
。
このようなURLには例外がスローされます。
System.InvalidCastException: Unable to cast object of type 'System.Net.FileWebRequest' to type 'System.Net.HttpWebRequest'
プロトコルに依存しないURLを使用"http:"
して、URLの前に追加する方法はありますか?