- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
尝试从 Twitter 加载图像文件时,我间歇性地出现此错误,URL 如下:https://pbs.twimg.com/media/Ck-9Oc6XIAAIb8B.jpg
针对 ios8 并在两个 ios9 设备和模拟器上间歇性地失败,通常至少有 20% 的时间。
我有一个带有允许重试的重新加载按钮的测试应用程序。如果第一次有效,则每次后续重新加载似乎都有效(可能是缓存?)。如果第一次失败,最终会在重试几次(比如 5-10 次)后加载成功。
twitter 肯定有适当的 SSL 设置。怎么回事?
理想情况下,我不想完全禁用 ALS,甚至不想只针对该域禁用 ALS。
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var myImageView: UIImageView!
@IBAction func didPressReload(sender: AnyObject) {
loadImage()
}
func loadImage() {
myImageView.imageFromUrl("https://pbs.twimg.com/media/Ck-9Oc6XIAAIb8B.jpg")
}
}
extension UIImageView {
public func imageFromUrl(urlString: String) {
if let url = NSURL(string: urlString) {
let request = NSURLRequest(URL: url)
NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue.mainQueue()) {
(response: NSURLResponse?, data: NSData?, error: NSError?) in
if (error != nil) {
NSLog("Failed to load URL \(response?.URL?.absoluteString): \(error)")
}
if let imageData = data as NSData? {
self.image = UIImage(data: imageData)
}
}
}
}
}
失败时的错误详情:
2016-06-18 18:17:19.975 TestSSL[1027:420188] NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9802)
2016-06-18 18:17:20.011 TestSSL[1027:420137] Failed to load URL nil: Optional(Error Domain=NSURLErrorDomain Code=-1200 "An SSL error has occurred and a secure connection to the server cannot be made." UserInfo={NSLocalizedDescription=An SSL error has occurred and a secure connection to the server cannot be made., NSLocalizedRecoverySuggestion=Would you like to connect to the server anyway?, _kCFStreamErrorDomainKey=3, NSUnderlyingError=0x14597da0 {Error Domain=kCFErrorDomainCFNetwork Code=-1200 "An SSL error has occurred and a secure connection to the server cannot be made." UserInfo={NSLocalizedDescription=An SSL error has occurred and a secure connection to the server cannot be made., _kCFNetworkCFStreamSSLErrorOriginalValue=-9802, _kCFStreamPropertySSLClientCertificateState=0, NSLocalizedRecoverySuggestion=Would you like to connect to the server anyway?, _kCFStreamErrorCodeKey=-9802, kCFStreamPropertySSLPeerTrust=<SecTrustRef: 0x146977b0>, _kCFStreamErrorDomainKey=3, kCFStreamPropertySSLPeerCertificates=<CFArray 0x14595f90 [0x3b0ca840]>{type = immutable, count = 4, values = (
0 : <cert(0x14696590) s: *.twimg.com i: DigiCert High Assurance CA-3>
1 : <cert(0x14696a90) s: DigiCert High Assurance CA-3 i: DigiCert High Assurance EV Root CA>
2 : <cert(0x14696eb0) s: DigiCert High Assurance EV Root CA i: Baltimore CyberTrust Root>
3 : <cert(0x146971e0) s: Baltimore CyberTrust Root i: Baltimore CyberTrust Root>
)}, NSErrorFailingURLStringKey=https://pbs.twimg.com/media/Ck-9Oc6XIAAIb8B.jpg, NSErrorFailingURLKey=https://pbs.twimg.com/media/Ck-9Oc6XIAAIb8B.jpg}}, _kCFStreamErrorCodeKey=-9802, NSErrorFailingURLStringKey=https://pbs.twimg.com/media/Ck-9Oc6XIAAIb8B.jpg, NSErrorPeerCertificateChainKey=<CFArray 0x14595f90 [0x3b0ca840]>{type = immutable, count = 4, values = (
0 : <cert(0x14696590) s: *.twimg.com i: DigiCert High Assurance CA-3>
1 : <cert(0x14696a90) s: DigiCert High Assurance CA-3 i: DigiCert High Assurance EV Root CA>
2 : <cert(0x14696eb0) s: DigiCert High Assurance EV Root CA i: Baltimore CyberTrust Root>
3 : <cert(0x146971e0) s: Baltimore CyberTrust Root i: Baltimore CyberTrust Root>
)}, NSErrorClientCertificateStateKey=0, NSURLErrorFailingURLPeerTrustErrorKey=<SecTrustRef: 0x146977b0>, NSErrorFailingURLKey=https://pbs.twimg.com/media/Ck-9Oc6XIAAIb8B.jpg})
最佳答案
我的错误是假设“twitter 肯定有适当的 SSL 设置”。我通过在 Chrome 中反复重新加载发现,有时只提供一个 SHA-1 证书。
也许 Twitter 试图支持旧客户端这一事实与此有关:
We’re doing our part by implementing SHA-256 certificates on our Twitter endpoints, and using cert switching to only serve SHA-1 certificates if we detect older clients without SHA-256 support.
来自 https://blog.twitter.com/2015/sunsetting-sha-1
Twitter 似乎有时会变得困惑。因此,我唯一的选择似乎是为我的应用程序允许 ALS 异常(exception)。
我希望我的 self 回答问题对其他人有用。
关于swift - 间歇性 HTTP 加载失败 kCFStreamErrorDomainSSL (-9802),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37899715/
我正在尝试从 webview 加载 php 脚本,但每次都出现错误。 NSURLSession/NSURLConnection HTTP 加载失败(kCFStreamErrorDomainSSL,-9
我正在尝试调试一个进行大量 HTTP 调用的应用程序。我在控制台看到这个: 2015-09-08 17:21:01.458 MyApp[3186:3064431] NSURLSession/NSURL
您运行此代码: let URL = "https://www.nasa.gov/sites/default/files/wave_earth_mosaic_3.jpg" let imageData =
你运行这段代码: let URL = "https://www.nasa.gov/sites/default/files/wave_earth_mosaic_3.jpg" let imageData
我正在使用 Alamofire 向服务器发送请求,但收到以下错误: NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomai
当连接到客户端的服务器时,我收到(kCFStreamErrorDomainSSL, -9813)。 客户端的服务器有一个我无法更改的自签名证书。该应用程序使用 AFNetworking 3.x。我尝试
尝试从 Twitter 加载图像文件时,我间歇性地出现此错误,URL 如下:https://pbs.twimg.com/media/Ck-9Oc6XIAAIb8B.jpg 针对 ios8 并在两个 i
调用第三方库时,出现如下问题。 NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9802) Error
iOS9.3 xcode7.3.1我想使用 WebView 访问 HTTPS 站点,出现错误(kCFStreamErrorDomainSSL, -9843) NSMutableURLRequest*
所以我知道 ATS 的东西以及如何编辑 info.plist 以允许 HTTP。但是,URL 是 https://api.map.baidu.com/api?v=2 . 0&ak=1XjLLEhZhQ
在模拟器上运行应用程序时,我在 iOS 9 上收到 NSURLSession/NSURLConnection HTTP 加载失败。这是我的 info.plist 文件的样子 NSAppTranspor
在模拟器上运行应用程序时,我在 iOS 9 上收到 NSURLSession/NSURLConnection HTTP 加载失败。这是我的 info.plist 文件的样子 NSAppTranspor
我正在尝试将具有自签名证书的 HTTPS 网页加载到 UIWebView 中。使用类似 this one 的提示, 或 this one ,它在 iOS 6 下工作。同样在 iOS 7 中不起作用。
我尝试在 Swift 中使用 NSURLSessionDownloadDelegate 下载文件。但是当我调用下载方法时,它经常显示以下错误。 Error Domain=NSURLErrorDomai
因此,我尝试了搜索此问题时出现的解决方案中提到的修复,但在 Visual Studio 上,我的 iOS Web View 项目仍然遇到这些问题。 android 版本工作正常,但 iOS 无法正常加
我现在正在测试环境中试用我的应用程序,该应用程序具有在 web View 中打开 URL 的功能,但现在测试时,生产数据库中的文件 URL 来自亚马逊并具有以下格式: self.url = @"htt
我正在尝试使用 Alamofire 从我的服务器访问数据。我已尝试以所有可能的方式编辑 info.plist,但无法从链接“https://plus.livectlab.com//users_vide
每当我尝试向我们的服务器发出请求时,我都会收到此错误。在我们设置 SSL 之前它工作正常,不是一团糟..这是我的代码: // Setup URL POST Request.. NSString*
我想在 Web View 中加载我的 Url,它向我显示错误,如 NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomain
我收到错误:NSURLSession/NSURLConnection HTTP 加载失败(kCFStreamErrorDomainSSL,-9802),我怀疑这是因为从 Parse 查询图像。这是我查
我是一名优秀的程序员,十分优秀!