2012-04-03 2 views
0

Я разрабатываю приложение для Windows Phone 7. Я делаю запрос GET службе JSON. Обратный тип запроса - это объект.Получение строки из запроса 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

Не понимаю, Ian 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

Смежные вопросы