我正试图从Silverlight到youtube获得一个简单的WebClient调用。我从微软Silverlight网站上获取了代码。
代码如下:
private void SearchTrack_Click(对象发送者,RoutedEventArgs e){Uri serviceUri = new Uri("https://www.googleapis.com/youtube/v3/search?part=id%2Csnippet&q=sara+smile&key=AAAAAAAAAAAAAAA");WebClient downloader = new WebClient();下载器。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中发现的文件系统问题。
任何帮助都将是非常感激的。
巴里这里说的是,由于跨域访问限制,从silverlight与google api进行交互不太可能那么容易。你需要添加一些中间的wcf服务,通过它,你的SL-app将与youtube api通信。