2014-03-28 120 views
1

缓存图像一个WCF Web服务来回报基础上的ID图片:一个WCF服务

[WebGet(UriTemplate = "Images/{ID}/{size}.jpg")] 
Stream GetImage (string ID, string size) 
{ 
    ... Logic to determine image to return ... 
} 

如果给定的ID没有在数据库中存在,那么我返回一个占位符图片。这个占位符图像总是相同的。

是否有反正告诉客户端图像是相同的,并缓存它,即使用于访问它的网址是不同的?可能有30个或更多这些占位符图像,因此加载相同的图像30次并不合理。

编辑:

下面的答案真的很好。我的代码如下所示:

{ 
    WebOperationContext.Current.OutgoingResponse.StatusCode = System.Net.HttpStatusCode.Redirect; 
    WebOperationContext.Current.OutgoingResponse.Location = "//myImageLoc/defaultImg.jpg"; 
    fileStream = null; 
} 

这适用于img标签和iOS中的AFNetworking + UIKit图像。

回答

1

您可以将占位符图像放置在不会更改的网址上。

当您得到一个导致占位符图像的请求时,您不会返回图像,您将http重定向返回到占位符图像的位置。

由于占位符位于静态url上,因此客户端知道它是否具有图像。

+0

好主意,但是如何用'WebGet'实现呢? –

+0

此方法适用于网络。仍然需要确保它不会在我的移动应用中导致任何问题。谢谢! http://stackoverflow.com/questions/992533/wcf-responseformat-for-webget – sflogen