【发布时间】:2010-10-31 19:55:02
【问题描述】:
我遇到了一个非常奇怪的问题。我一定是在做一些非常明显的错误,但我看不到。我正在构建一个当前在模拟器中运行的 wp7 应用程序。
我有一个返回 JSON 的 URL。我在浏览器中访问此 URL 并验证它是否有效。
我在 Silverlight 中使用 WebClient 从这个 URL 获取数据。当我得到结果时,一切都一样 - 除了其中一个 JSON 字段消失了。
这怎么可能?我不确定我做错了什么。什么可能导致 JSON 在 Web 浏览器中的外观与 wp7 模拟器中的 WebClient 结果之间的不一致?
代码如下:
downloadData(STORIES_URL + vid,
delegate(object sender, DownloadStringCompletedEventArgs e)
{
data_StoryDownloadCompleted(sender, e, _sectionStories[vid], STORIES_URL + vid);
});
static void data_StoryDownloadCompleted(object sender, DownloadStringCompletedEventArgs e, ObservableCollection<Story> results, string uri)
{
if (e.Error != null)
{
throw e.Error;
}
JObject data = JObject.Parse(e.Result);
// ...
}
我做错了什么?
【问题讨论】:
-
我认为原始 JSON 数据返回时是相同的,即e.Result 是一样的,而 JObject.Parse 没有像你期望的那样反序列化?
-
不,实际上,
e.Result是不相同的。这就是让我感到害怕/让我觉得我在做一些非常愚蠢的事情的原因。 -
两个客户端之间的接受标头是否不同?
-
嗯,这很奇怪。 e.Result 只是 Webclient 的直接输出?我相当肯定它不会仅仅为了它而在响应中删除一个字段。除非您在 webclient 响应之间进行某种转换,否则我会安装 fiddler 并查看原始 HTTP。
标签: silverlight json rest windows-phone-7 webclient