我正在构建一个iOS应用程序,该应用程序在后台将一堆文件上传到Amazon S3-我正在将NSURLSession
与NSURLSessionConfiguration
结合使用,这似乎运行良好。文件将作为单个putObjects上传
但是奇怪的是,尽管我在尝试上传说50张图片时遇到了一个问题,但其中一些图片大多在最后才出现如下错误;Error Domain=NSURLErrorDomain Code=-1200
“发生SSL错误,无法建立与服务器的安全连接。”
这可能是由于我设置的NSURLSessionConfiguration
属性引起的吗?这是我的代码;
NSURLSessionConfiguration *myConfig = [NSURLSessionConfiguration backgroundSessionConfiguration:sessionIdentifier];
[myConfig setTimeoutIntervalForResource:2400];
[myConfig setTimeoutIntervalForRequest:2400];
myConfig.allowsCellularAccess = YES;
在这种情况下,我用
timeoutIntervalForRequest
和timeoutIntervalForResource
值玩了些,但这似乎无法解决。谁能建议这两个的最佳值?另外,我没有使用
HTTPMaximumConnectionsPerHost
,因为它可以指定并发操作数。如果存在良好的网络条件,您认为我应该设置该值什么?我也没用过HTTPShouldUsePipelining
还是这与
NSURLSession
无关,而与AWS部分无关。我正在使用1.7版本。也许这里的AWS维护人员可以提供帮助。 最佳答案
在为iOS9构建一些较旧的应用程序后,我遇到了这个问题。根据苹果公司的网站...
https://developer.apple.com/library/prerelease/ios/technotes/App-Transport-Security-Technote/index.html#//apple_ref/doc/uid/TP40016240-CH1-SW3
“证书必须使用SHA256或更高级的签名进行签名”
我在使用带有SHA-1和RSA加密功能的服务器时,遇到了这个问题,但这还不够。
在具有SHA-256和RSA加密功能的服务器上进行的测试在没有“NSAllowsArbitraryLoads”变通办法的情况下可以正常工作。
您可以从此处选择两个:
“NSAllowsArbitraryLoads”。
希望对您有所帮助!