从JSON GET请求中获取字符串
本文关键字:获取 字符串 请求 JSON GET | 更新日期: 2023-09-27 18:30:01
我正在为Windows Phone 7开发一个应用程序。我正在向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));
});
}
为什么不使用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中包含的方法之一进行这种交互。
还要注意,你可能想把你的结果对象藏在某个地方,这样它就可以在你的搜索结果页面上访问,或者在那里下载/取消序列化。
您应该能够使用JsonConvert.SerializeObject,详细信息如下:-
http://james.newtonking.com/projects/json/help/SerializingJSON.html