Silverlight:WebClient难度大

时间:2010-10-31 19:55:03

标签: silverlight json rest windows-phone-7 webclient

我有一个非常奇怪的问题。我必须做一些非常明显的错误,但我看不到它。我正在构建一个目前在模拟器中运行的wp7应用程序。

我有一个返回JSON的URL。我在浏览器中访问此URL并验证其是否有效。

我使用WebClient在Silverlight中从此网址获取数据。当我得到结果时,它都是一样的 - 除了一个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);
        // ...
    }

我可能做错了什么?

1 个答案:

答案 0 :(得分:0)

你能在像Fiddler这样的工具中捕获请求/响应(来自浏览器和Silverlight)并进行比较吗?具体来说,请注意请求中HTTP标头的任何差异。

然后(如果您正在使用Fiddler),您可以通过逐个调整标题来调整Silverlight请求,使其看起来像浏览器请求,直到找到产生差异的那个。