Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Swift中使用重定向url时出现ATS策略问题_Swift_Http_Https_App Transport Security - Fatal编程技术网

在Swift中使用重定向url时出现ATS策略问题

在Swift中使用重定向url时出现ATS策略问题,swift,http,https,app-transport-security,Swift,Http,Https,App Transport Security,我用这个例子来加载链接。虽然该链接是http链接,但它将被重定向到https链接。它在浏览器中工作。 但是,当我让iOS应用程序加载资源时,它会说“无法加载资源,因为应用程序传输安全策略要求使用安全连接。” 我正在使用加载图片。不支持Swift加载https资源吗?我可以想到ATS会阻止与服务器的连接,因此重定向甚至无法接收 如果你能想到这一点,我将不胜感激 Christian转到info.plist添加一个名为应用程序传输安全设置的术语 在这种情况下,添加允许任意加载虽然您当然可以使用Kish

我用这个例子来加载链接。虽然该链接是http链接,但它将被重定向到https链接。它在浏览器中工作。 但是,当我让iOS应用程序加载资源时,它会说“无法加载资源,因为应用程序传输安全策略要求使用安全连接。”

我正在使用加载图片。不支持Swift加载https资源吗?我可以想到ATS会阻止与服务器的连接,因此重定向甚至无法接收

如果你能想到这一点,我将不胜感激


Christian

转到
info.plist
添加一个名为
应用程序传输安全设置的术语


在这种情况下,添加
允许任意加载

虽然您当然可以使用Kishan和Johnson提供的解决方案禁用整个ATS,但如果您知道您尝试加载的http资源的域,您有更好的选择。有关为什么完全禁用ATS不是最佳方案的详细信息,请参阅

更好的选择是:

  • 如果您知道http资源总是会重定向到相同的https://url,那么为什么不在代码中使用https://url呢。如果重定向是动态的,这将不起作用,但是如果您的代码正在尝试加载并且总是重定向到,为什么不直接更改代码以转到https版本呢

  • 仅在需要允许非https连接的域中禁用ATS。这允许您只允许您知道不支持https的域的http连接,从而更好地保护您的应用程序用户。 info.plist wqool中的ATS设置如下所示:

  • 如果且仅当您的URL由您无法控制的数据驱动(即,这些URL中的域可以是任何内容),您将需要禁用所有AT,苹果可能最终希望您提供禁用它的理由。最初,他们打算让所有禁用ATS的应用程序都经过一个额外的对正请求过程,但最近他们没有提到这一点。这应该是最后的手段

    老实说,看看你的例子