我正在尝试使用WP7中的WebBrowserTask打开此URL,但它不起作用(我在我们的网站上收到了自定义错误),但是当我手动输入时,它工作正常。有什么想法吗?
它在Google Chrome和IE7中也可以正常使用。
这是网址:
这是我的代码:
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();
我不明白有什么不同?
答案 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();