我正在尝试从Silverlight到youtube进行简单的WebClient调用。我解除了Microsoft Silverlight站点的代码。
以下是代码:
private void SearchTrack_Click(object sender,RoutedEventArgs e) { Uri serviceUri = new Uri(“https://www.googleapis.com/youtube/v3/search?part=id%2Csnippet&q=sara+smile&key=AAAAAAAAAAAAAAA”); WebClient下载器=新的WebClient(); downloader.OpenReadCompleted + = new OpenReadCompletedEventHandler(downloader_OpenReadCompleted); downloader.OpenReadAsync(serviceUri); }
void downloader_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
{
if (e.Error == null)
{
Stream responseStream = e.Result;
// Continue working with responseStream here...
}
}
调用失败,并显示以下错误:
[System.Security.SecurityException] = {System.Security.SecurityException ---> System.Security.SecurityException:安全性错误。 在System.Net.Browser.BrowserHttpWebRequest.InternalEndGetResponse(IAsyncResult asyncResult) 在System.Net.Browser.BrowserHttpWebRequest。<> c__DisplayClassa。
如果我只是从浏览器点击URL,则会返回JSON而不会出现问题。
我正在运行VS / Cassini中的应用程序,所以我认为这不是http://blogs.msdn.com/b/silverlightws/archive/2008/03/30/some-tips-on-cross-domain-calls.aspx中确定的FIle系统问题。
非常感谢任何帮助。
百里
答案 0 :(得分:1)
Here 据说,由于corssdomain访问限制,从silverlight中删除谷歌apis是不可能的。您需要添加一些中间WCF服务,您的SL-app将通过该服务与youtube api进行通信。