Silverlight:网络客户端的困难

Silverlight:网络客户端的困难,silverlight,json,rest,windows-phone-7,webclient,Silverlight,Json,Rest,Windows Phone 7,Webclient,我有一个很奇怪的问题。我一定是做了一些很明显的错误的事情,但我看不出来。我正在构建一个wp7应用程序,它目前在模拟器中运行 我有一个返回JSON的URL。我在浏览器中访问此URL并验证它是否有效 我使用WebClient在Silverlight中从这个URL获取数据。当我得到结果时,结果都是一样的——只是其中一个JSON字段消失了 这怎么可能?我不确定我做错了什么。什么会导致JSON在web浏览器中的外观与web浏览器中的外观不一致。wp7模拟器中的WebClient结果 代码如下:

我有一个很奇怪的问题。我一定是做了一些很明显的错误的事情,但我看不出来。我正在构建一个wp7应用程序,它目前在模拟器中运行

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

我使用WebClient在Silverlight中从这个URL获取数据。当我得到结果时,结果都是一样的——只是其中一个JSON字段消失了

这怎么可能?我不确定我做错了什么。什么会导致JSON在web浏览器中的外观与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);
        // ...
    }

我可能做错了什么?

您能在Fiddler之类的工具中捕获来自浏览器和Silverlight的请求/响应并进行比较吗?具体来说,注意请求中HTTP头的任何差异


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

我假设返回的原始JSON数据是相同的,即结果是相同的,而JObject.Parse没有按照您的预期进行反序列化?否,事实上,结果是不一样的。这就是让我抓狂的原因/让我觉得我在做一些非常愚蠢的事情。这两个客户的接受头是否不同?嗯,这很奇怪。e、 结果就是Webclient的直接输出?我相当肯定,它不会仅仅为了它而在响应中去掉一个字段。除非您在webclient响应之间进行某种转换,否则我会安装fiddler并查看原始HTTP。我下载了Fiddler2,但模拟器的请求不会显示。我用错了吗?请求是否要发送到本地主机?如果是,则有关于设置Fiddler的特殊说明,请参阅Fiddler文档