一、问题描述
通过WebClient类调用REST方法时,由于缓存的问题,会导致获取到的Http-Get信息不能实时更新,但是有在WebClient类中没有找到合适的方案去清楚缓存。这对于要及时获取平台实时数据来说确实很棘手。
二、解决方案
通过动态生成WebClient的Url来解决缓存的问题,并且能保证每次获取到的信息是最新的。
1、若url字符串中没有“?”字符串,那么可以在原url字符串后面加上字符串“?”+随机数;
2、若url字符串中本身含有“&”字符串,那么可以在原url字符串后面加上字符串“&”+随机数;
三、代码示例
/// <summary>
/// 生成动态url
/// </summary>
/// <param name="uri">原始url</param>
/// <param name="ch">需要追加的符号:"?"或者"&"</param>
/// <returns></returns>
public static string GetRandomUri(string uri,string ch)
{
Random rd = new Random();
string rdStr = rd.Next(10).ToString() + rd.Next(10).ToString() + rd.Next(10).ToString();
string rdUri = uri + ch + rdStr;
return rdUri;
}