为什么Httpclient总是返回相同的结果C#PCL?

时间:2015-04-16 07:21:12

标签: c# httpclient portable-class-library

我正在使用HttpClient PCL类库。但是当我第一次获得JSON结果时它会返回正确的数据。之后,HttpClient一次又一次地为一个URL返回相同的JSON结果,直到我关闭应用程序并再次启动它。我的代码看起来像那样

public class HttpService : IHttpService
    {
        public async Task<TResponseType> GetAsync<TResponseType>(string method, string parameters = null) where TResponseType : class
        {
            var uri = new Uri(string.Format(Constants.ServerUrl + method + parameters));
            using (var client=new HttpClient())
            {
                client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic",
                    "c2Rzb2w6c2Rzb2w5OQ==");
                var response = await client.GetAsync(uri);
                var result = response.Content.ReadAsStringAsync().Result;
                return JsonConvert.DeserializeObject<TResponseType>(result);
            }
        }
}

1 个答案:

答案 0 :(得分:2)

正如different question的答案中所述,解决方案是设置IfModifiedSince属性以防止出现如下默认缓存行为:

httpClient.DefaultRequestHeaders.IfModifiedSince = DateTime.Now; 

您还可以查看MSDN以获取更多信息。