NSURLSessionConfiguration

NSURLSessionConfiguration

我正在构建一个iOS应用程序,该应用程序在后台将一堆文件上传到Amazon S3-我正在将NSURLSessionNSURLSessionConfiguration结合使用,这似乎运行良好。文件将作为单个putObjects上传

但是奇怪的是,尽管我在尝试上传说50张图片时遇到了一个问题,但其中一些图片大多在最后才出现如下错误;
Error Domain=NSURLErrorDomain Code=-1200“发生SSL错误,无法建立与服务器的安全连接。”

这可能是由于我设置的NSURLSessionConfiguration属性引起的吗?这是我的代码;

 NSURLSessionConfiguration *myConfig = [NSURLSessionConfiguration backgroundSessionConfiguration:sessionIdentifier];
        [myConfig setTimeoutIntervalForResource:2400];
        [myConfig setTimeoutIntervalForRequest:2400];
        myConfig.allowsCellularAccess = YES;

在这种情况下,我用timeoutIntervalForRequesttimeoutIntervalForResource值玩了些,但这似乎无法解决。谁能建议这两个的最佳值?

另外,我没有使用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”变通办法的情况下可以正常工作。

您可以从此处选择两个:

  • 您可以将* .yoursite.com添加到plist的白名单中
    “NSAllowsArbitraryLoads”。
  • 您的IT团队可以将服务器升级到SHA256签名。

  • 希望对您有所帮助!

    07-24 09:39