2012-04-03 170 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

没有意识到伊恩大号 – TweedyMK 2012-04-03 10:35:08

+0

良好的工作! :)真的有助于在未来的问题上得到一些很好的答案。 – 2012-04-03 10:38:06

回答

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 2012-04-03 10:37:13