【问题标题】:HttpClient dosen't get data after update WP8更新 WP8 后 HttpClient 不获取数据
【发布时间】:2013-12-15 19:12:29
【问题描述】:

我有这段代码可以从 WP8 的 API 获取 JSON 数据:

HttpClient client = new HttpClient();
client.BaseAddress = new Uri(mainURL.ToString());
HttpResponseMessage response = await client.GetAsync("");
string res = await response.Content.ReadAsStringAsync();
var root = await JsonConvert.DeserializeObjectAsync<Rootobject>(res);

一切正常,但是当我从网站更新 Web API 上的数据并尝试使用此代码再次检索数据时,即使在浏览器中访问 URL,它也会获取旧数据,但它会获取新数据。

当我逐行调试时,我看到“响应”对象包含旧数据。

我发现解决此问题的唯一方法是以这种工作方式重建项目。

如何正确获取更新后的数据?

【问题讨论】:

    标签: json windows-phone-8 dotnet-httpclient


    【解决方案1】:

    可能涉及一些缓存。尝试在 URL 中添加一些随机字符串,例如

    client.BaseAddress = new Uri(mainURL.ToString()+"&random="+DateTime.Now.Ticks);
    

    【讨论】:

      【解决方案2】:

      我有同样的问题。我试过了,这可能对你有帮助。

      HttpWebRequest request = HttpWebRequest.CreateHttp(mainURL.ToString());
           request.Method = "GET or Post";
           request.BeginGetResponse(ResponseCallBack, request);
      
      
          void ResponseCallBack(IAsyncResult asyncResult)
           {
           HttpWebRequest request = (HttpWebRequest)asyncResult.AsyncState;
                          HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(asyncResult);
                         using (Stream data = response.GetResponseStream())
                                  {
                                      using (var reader = new StreamReader(data))
                                      {
                                          string jsonString = reader.ReadToEnd();
                                          MemoryStream memoryStream = new MemoryStream(Encoding.Unicode.GetBytes(jsonString));
                                          DataContractJsonSerializer dataContractJsonSerializer = new DataContractJsonSerializer(typeof(Rootobject));
                                          Rootobject yourdata= dataContractJsonSerializer.ReadObject(memoryStream) as Rootobject;
      
                                      }
                                  }
           }
      

      【讨论】:

        猜你喜欢
        • 2018-02-09
        • 2015-11-18
        • 1970-01-01
        • 2021-11-19
        • 2019-01-18
        • 1970-01-01
        • 2013-02-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多