2014-03-28 152 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