我对gravatar有一个非常奇怪的问题。
我在example.com/image.jpg
我在很久以前(超过一周前)在公共网站上更改了此图片。
从那时起,在localhost
,当我开发网站时,我仍然看到旧的默认图像,但是当我在远程域上发布网站时,默认图像显示为正确的图像,新的之一。
我已多次清除浏览器缓存并在所有主流浏览器上尝试过。
任何人都知道为什么会发生这种情况?
这就是我创建网址的方式
string defaultImg = HttpContext.Current.Server.UrlEncode("http://example.com/image.jpg");
string URL = string.Format("http://www.gravatar.com/avatar/{0}?r=pg&s={1}&d={2}",hash,size,defaultImg);
然后请求头像
private bool makeAvatarRequest(string URL)
{
try
{
WebRequest request = WebRequest.Create(URL);
using (WebResponse response = request.GetResponse())
{
using (Stream responseStream = response.GetResponseStream())
{
displayImage(responseStream);
return true;
}
}
}
catch (WebException ex)
{
return false;
}
}
并显示图像
private void displayImage(Stream stream)
{
HttpContext.Current.Response.ContentType = "image/png";
System.Drawing.Image img = System.Drawing.Image.FromStream(stream);
MemoryStream temp = new MemoryStream();
img.Save(temp, ImageFormat.Png);
byte[] buffer = temp.GetBuffer();
HttpContext.Current.Response.OutputStream.Write(buffer, 0, buffer.Length);
img.Dispose();
temp.Dispose();
}