为WCF服务缓存图像
本文关键字:图像 缓存 服务 WCF | 更新日期: 2023-09-27 17:55:02
我目前正在使用WCF web服务返回基于id的图像:
[WebGet(UriTemplate = "Images/{ID}/{size}.jpg")]
Stream GetImage (string ID, string size)
{
... Logic to determine image to return ...
}
如果给定的ID在DB中不存在,那么我返回一个占位符图像。这个占位符图像总是相同的。
是否有办法通知客户端图像是相同的,并缓存它,即使用来访问它的url是不同的?有可能有30个或更多这样的占位符图像,所以加载相同的图像30次真的没有意义。
编辑:下面的答案非常有效。我的代码是这样的:
{
WebOperationContext.Current.OutgoingResponse.StatusCode = System.Net.HttpStatusCode.Redirect;
WebOperationContext.Current.OutgoingResponse.Location = "//myImageLoc/defaultImg.jpg";
fileStream = null;
}
这适用于img标签和iOS中的AFNetworking+UIKit图像。
您可以将占位符图像放置在不会更改的url上。
当你得到一个请求,结果是占位符图像,你不返回图像,你返回一个http重定向到占位符图像的位置。
由于占位符在静态url上,客户端知道它是否有图像。