【问题标题】:System.NotSupportedException with WebClient on Windows Phone 7System.NotSupportedException 与 Windows Phone 7 上的 WebClient
【发布时间】:2011-09-02 02:12:25
【问题描述】:

我在 Windows Phone 7 上使用 WebClient 时遇到了一点问题。我目前正在尝试通过将文件下载到字符串中来使用它,以便可以使用 JSON.NET 解析字符串。不幸的是,我什至似乎还无法将文件转换为字符串。这是我的代码:

private void GetFileAsString()
{
    var client = new WebClient();
    client.DownloadStringCompleted += new DownloadStringCompletedEventHandler(sClient_DownloadStringCompleted);  
    client.DownloadStringAsync(new Uri(searchData.searchurl, UriKind.Relative));
}
private void sClient_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{
    if (e.Error == null)
    {
        textBlock1.Text = e.Result;
    }
    else
    {
        textBlock1.Text = e.Error.ToString();
    }
}

这是我收到的错误的屏幕截图:http://k.min.us/jzvIAYJ18uQbV.png

我在网上看了很多次,似乎找不到解决这个问题的方法,包括在本网站以前的帖子中。非常感谢这里的任何帮助!

【问题讨论】:

  • searchurl 是否以 http:// 或 https:// 开头?

标签: c# silverlight windows-phone webclient


【解决方案1】:

当您使用 UriKind.Relative 时,您需要在您的 WebClient 实例上正确设置 BaseAddress 属性,或者只使用绝对的 Uri - 否则它会尝试使用您的 xap 的来源 Uri...

【讨论】:

    【解决方案2】:

    MSDN 文档建议您可能遇到两个可能的问题。你没有给我们足够的信息来肯定地说。

    http://msdn.microsoft.com/en-us/library/ms144202(v=VS.95).aspx

    此方法使用 GET 方法检索指定的资源。这 资源是异步下载的。下载完成后, 引发了 DownloadStringCompleted 事件。下载的字符串是 在 Result 属性中可用 下载StringCompletedEventArgs。你不能打电话给 再次在同一个 WebClient 对象上使用 DownloadStringAsync 方法,直到 第一个字符串下载操作完成。这样做会导致 例外。

    如果 BaseAddress 属性不是空字符串并且 地址不包含绝对 URI,地址必须是 与 BaseAddress 组合形成绝对的相对 URI 请求数据的 URI。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-10
      相关资源
      最近更新 更多