2013-12-15 1 views
0

나는 WP8에 대한 API에서 JSON 데이터를 얻기 위해이 코드가 있습니다HttpClient를 나던 GET 데이터

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); 

모든 것이 완벽하게 작동하지만을 나는 웹 사이트에서 웹 API에 데이터를 업데이트 할 때 이 코드를 사용하여 데이터를 다시 검색하려고하면 브라우저에서 URL에 액세스해도 새 데이터를 가져 오지만 이전 데이터를 가져옵니다.

줄 단위로 디버깅 할 때 "응답"개체에 이전 데이터가 포함되어있는 것을 볼 수 있습니다.

이 문제를 해결할 수있는 유일한 방법은이 방법으로 프로젝트를 다시 작성하는 것입니다.

어떻게 업데이트 된 데이터를 올바르게 가져올 수 있습니까?

답변

1

일부 캐싱이있을 수 있습니다. 임의의 문자열을 URL에 추가하려고 시도했습니다.

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

그것은 작동합니다. 고맙습니다. –

1

같은 종류의 문제가 있습니다. 나는 이것이 당신을 도울 수있는 시도했다.

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; 

           } 
          } 
    } 
+0

이 중 하나가 작동합니다. 도와 주셔서 감사합니다. –