2012-04-03 3 views
0

Windows Phone 7 용 응용 프로그램을 개발 중입니다. JSON 서비스에 GET 요청을하고 있습니다. 요청의 리턴 유형은 오브젝트입니다.JSON GET 요청에서 문자열 가져 오기

제 질문은 객체의 정보에서 문자열을 만드는 방법입니다. 아래 코드는 요청을 처리하고 응답을 처리하기 위해 사용하는 코드입니다.

 HttpWebRequest carRequest = (HttpWebRequest)WebRequest.Create(carUrl); 
     carRequest.Method = "GET"; 
     carRequest.BeginGetResponse(new AsyncCallback(ProcessResponse), carRequest); 

    private void ProcessResponse(IAsyncResult asyncResult) 
    { 
     HttpWebRequest request = (HttpWebRequest)asyncResult.AsyncState; 
     WebResponse response = (HttpWebResponse)request.EndGetResponse(asyncResult); 
     StreamReader sr = new StreamReader(response.GetResponseStream()); 
     Car.car = (Car)JsonConvert.DeserializeObject(sr.ReadToEnd(), typeof(Car)); 
     Deployment.Current.Dispatcher.BeginInvoke(() => 
      { 
       NavigationService.Navigate(new Uri("/SearchResults.xaml", UriKind.Relative)); 
      }); 
    } 
+0

이안 L – TweedyMK

+0

좋은 일을 실현하지 않았나요! :) 정말 미래의 질문에 대한 좋은 답변을 얻는 데 도움이됩니다. –

답변

0

왜 WebClient를 사용하지 않습니까?

private void DownloadString() 
{ 
    var wc = new WebClient(); 
    wc.DownloadStringCompleted += MyHandler; 
    wc.DownloadStringAsync(carUrl); 
} 

void MyHandler(object sender, DownloadStringCompletedEventArgs e) 
{ 
    var result = e.Result; 
} 

이것은 문자열 다운로드에 대한 일반적인 해결책입니다. JSON을 해결하려는 경우 JSON.Net에 포함 된 메소드 중 하나를 사용하여 이러한 상호 작용을 수행하십시오.

결과 개체를 어딘가에 숨겨서 검색 결과 페이지에서 액세스하거나 거기에서 다운로드/역 직렬화를 수행 할 수 있습니다. 아래에 설명 된대로

+0

감사합니다. 작동하고 훨씬 간단합니다. D – TweedyMK

관련 문제