Json HttpClient dosen';更新WP8后无法获取数据
我使用以下代码从WP8的API获取JSON数据:Json HttpClient dosen';更新WP8后无法获取数据,json,windows-phone-8,dotnet-httpclient,Json,Windows Phone 8,Dotnet Httpclient,我使用以下代码从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 JsonC
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);
HttpClient=newhttpclient();
client.BaseAddress=新Uri(mainURL.ToString());
HttpResponseMessage response=wait client.GetAsync(“”);
string res=wait response.Content.ReadAsStringAsync();
var root=await JsonConvert.DeserializeObjectAsync(res);
一切都很完美,但是当我从web站点更新web API上的数据并尝试再次使用此代码检索数据时,它会获取旧数据,即使在浏览器中访问URL也会获取新数据
当我逐行调试时,我看到“response”对象包含旧数据
我发现解决这个问题的唯一方法是以这种方式重建项目
如何正确获取更新的数据?我也有同样的问题。我试过这个也许对你有帮助
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;
}
}
}
可能涉及一些缓存。尝试向URL添加一些随机字符串,如
client.BaseAddress = new Uri(mainURL.ToString()+"&random="+DateTime.Now.Ticks);