【问题标题】:Why Httpclient returns always the same result C# PCL?为什么 Httpclient 总是返回相同的结果 C# PCL?
【发布时间】:2015-06-22 11:02:48
【问题描述】:

我正在使用 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);
            }
        }
}

【问题讨论】:

  • 您是否对此进行了跟进或找到了解决方案?我在 Windows Phone 项目中使用 pcl 时遇到了同样的问题。

标签: c# httpclient portable-class-library


【解决方案1】:

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

httpClient.DefaultRequestHeaders.IfModifiedSince = DateTime.Now; 

您也可以查看MSDN 了解更多信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多