代码之家  ›  专栏  ›  技术社区  ›  JBC

使用时无法从Twitch静态cdn加载图像。净值4.0或4.5。十、

  •  0
  • JBC  · 技术社区  · 7 年前

    我有一个WPF桌面应用程序,我使用它们的API在Twitch上导航游戏和流。大约两周前(2018年2月中旬/下旬),我开始注意到流预览图像不再加载(the <Image /> 标签在布局中不占空间)。

    图像加载非常简单。为了演示,我选择了一个全天候的流。

    <Image Source="https://static-cdn.jtvnw.net/previews-ttv/live_user_esl_sc2-640x360.jpg" />
    

    此URL来自API,在浏览器中运行良好。在测试过程中,我创建了一个基本的WPF应用程序。

    <Window x:Class="WpfApp1.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
            xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
            xmlns:local="clr-namespace:WpfApp1"
            mc:Ignorable="d"
            Title="MainWindow" Height="350" Width="525">
        <Grid>
            <Image Source="https://static-cdn.jtvnw.net/previews-ttv/live_user_esl_sc2-640x360.jpg" />
        </Grid>
    </Window>
    

    这最终奏效了,我最终意识到这是因为新项目有一个目标框架。净额4.6.1。将其切换到4.5。X使其产生与其他应用程序相同的结果。将第一个应用程序切换到4.6。X使它再次工作。NET 4.0也失败了。其他网站(如Imgur)工作正常,无事故。也许还值得注意的是,在任何页面上使用Twitch url时,设计器窗口中没有预览图像。NET框架,但Imgur有一个。

    此问题发生在两个Windows 10设备和一个Windows 7设备上。我相信其中一个Windows 10设备有定期的Windows更新(可能已禁用,不确定),而另外两个设备的更新设置为仅手动。

    是什么导致了这种行为?

    1 回复  |  直到 7 年前
        1
  •  0
  •   JBC    6 年前

    看来Twitch现在通过HTTP/2为这些图像提供服务。我相信HTTP下的请求比较老。NET被默认为使用SSL3,Twitch拒绝使用。

    除了升级的版本之外。净值为4.6。x或更大,设置安全协议也可以解决此问题:

    ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;