我正在使用Azure Redis緩存與我的密鑰是請求url。我有一個web-api2/mvc5應用程序,它返回來自Redis服務器的緩存結果,如果密鑰與請求url存在,否則它會處理請求並將結果保存在Azure Redis緩存服務器中。我有iOS/Android的移動客戶端以及JavaScript。問題是,有一段時間我的網址看起來像,如何避免在不同地方使用相同的鍵/值查詢字符串重複的網址?
http://example.com/MyPath/?b=2&a=1&c=
http://example.com/MyPath/?b=2&a=1&c
http://example.com/MyPath/?a=1&b=2
http://example.com/MyPath/?c=&a=1&b=2
http://example.com/MyPath/?a=1&b=2
http://example.com/MyPath/?a=1&b=2&c=
以上url指向相同的資源。它應該返回相同的響應(緩存響應,如果存在),但由於key(url)不同,它會完全處理請求並在Azure Redis緩存服務器上保存不同的記錄。如何解決這種情況?
僅供參考 - HttpUtility.ParseQueryString( 「」)返回一個NameValueCollection中,實際上是一個HttpValueCollection。在HttpValueCollection上調用.ToString將返回格式化的查詢字符串。示例 - > http://pastebin.com/A0DwH9w5 –
@JeremyBell在我的情況下感謝它的web api :) – user960567