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