none
在通过BitmapImage加载图片的时候报出AG_E_NETWORK_ERROR,请问怎么解决啊 RRS feed

  • 问题

  • var img = new Image() ;
      var bi = new BitmapImage();
    
      // with this Uri it works
      //bi.UriSource = new Uri("http://img.cnbeta.com/newsimg/120514/13540001507152531.jpg", UriKind.Absolute);
    
      // with this Uri it doesnt work
      bi.UriSource = new Uri("http://img.cnbeta.com/newsimg/120514/13540001507152531.jpg", UriKind.Absolute);
      bi.ImageFailed += (object sender, ExceptionRoutedEventArgs ea) =>
      {
      // error!
      // ea.ErrorException 
      };
    
      img.Source = bi;

    在IE下面能打开,放到应用中就打不开了,很奇怪,监测错误后,得知报的错误时:AG_E_NETWORK_ERROR。同样的代码,A网站的URL地址全部可以正常加载,B网站却不行,不知道为什么

    2012年5月14日 7:19

答案

  • 已经解决问题了,是网站验证了referer的,使用BitmapImage无法设置referer,改成webclient就可以了。
      WebClient downloadImage = new WebClient();
                                        downloadImage.Headers ["Referer"] = "http://www.cnbeta.com";

    • 已标记为答案 andy-zl 2012年5月14日 16:27
    2012年5月14日 16:27

全部回复

  • 已经解决问题了,是网站验证了referer的,使用BitmapImage无法设置referer,改成webclient就可以了。
      WebClient downloadImage = new WebClient();
                                        downloadImage.Headers ["Referer"] = "http://www.cnbeta.com";

    • 已标记为答案 andy-zl 2012年5月14日 16:27
    2012年5月14日 16:27
  • 谢谢你将解决方案分享在这边。这样可以帮到以后遇到类似问题的论坛上的朋友们。

    如果之后遇到其他的问题,也欢迎在论坛上提出。

    2012年5月15日 7:03