Windows Phone 7 WebBrowserTask问题

时间:2010-12-09 01:40:33

标签: windows-phone-7

我正在尝试使用WP7中的WebBrowserTask打开此URL,但它不起作用(我在我们的网站上收到了自定义错误),但是当我手动输入时,它工作正常。有什么想法吗?

它在Google Chrome和IE7中也可以正常使用。

这是网址:

http://www.symfonee.com/Improv/addison/comedians/Bio.aspx?ShowDate=12/15/10&ShowTime=8:00p&Uid=54918a0d-1beb-4552-bdc8-2d474e3ea5ae

这是我的代码:

string url = "http://www.symfonee.com/Improv/addison/comedians/Bio.aspx?ShowDate=12/15/10&ShowTime=8:00p&Uid=54918a0d-1beb-4552-bdc8-2d474e3ea5ae";

WebBrowserTask browser = new WebBrowserTask();
browser.URL = url;
browser.Show();

谢谢!

修改

如果没有以下任何解决方案,此代码可以正常运行:

WebBrowserTask browser = new WebBrowserTask();
browser.URL = "http://www.youtube.com/results?search_query=Windows+Phone+7&aq=f";
browser.Show();

我不明白有什么不同?

4 个答案:

答案 0 :(得分:5)

SDK存在错误。在包含&的网址中,您需要将其转义。

例如:

... Uri.EscapeDataString("&") + "ShowTime=8:00p"

答案 1 :(得分:3)

这很可能是因为您的查询字符串参数不是URL编码的。当您将其粘贴到地址栏中时,现代Web浏览器将尝试进行补偿,因为您的头脑中很难进行URL编码。但是当你使用API​​时,你应该自己对这些部分进行URL编码。

使用Uri.EscapeDataString方法分别对查询字符串的每个部分进行编码。例如。

string url = "http://www.symfonee.com/Improv/addison/comedians/Bio.aspx" +
    "?ShowDate=" + Uri.EscapeDataString("12/15/10") +
    "&ShowTime=" + Uri.EscapeDataString("8:00p") +
    "&Uid=" + Uri.EscapeDataString("54918a0d-1beb-4552-bdc8-2d474e3ea5ae");

答案 2 :(得分:1)

以下代码对我有用:

s = "www.. "; //url
s = Uri.EscapeUriString(s);
task.URL = HttpUtility.UrlEncode(s);

答案 3 :(得分:0)

你的URI确实需要被转义。我认为更简单的方法是:

string url = "http://www.symfonee.com/Improv/addison/comedians/Bio.aspx?ShowDate=12/15/10&ShowTime=8:00p&Uid=54918a0d-1beb-4552-bdc8-2d474e3ea5ae";

WebBrowserTask browser = new WebBrowserTask();
browser.URL = Uri.EscapeUriString(url);
browser.Show();