FAILURE:错误域= NSURLErrorDomain代码= -1004“无法连接到服务器”。

在任何事情之前,我想列出我已阅读的post,并试图从(避免重复)实现答案:

  • iOS 9和iOS 10中的应用程序传输安全问题
  • http://iosdevtips.co/post/121756573323/ios-9-xcode-7-http-connect-server-error
  • http://www.neglectedpotential.com/2015/06/working-with-apples-application-transport-security/

我正在开发一个SDK,我已经创build了一些UItesting。 我正在尝试不连接到后端系统,并通过在本地计算机上运行的存根服务器来模拟它们,同时进行testing。 所有的请求必须去这个服务器。

我创build了一个不会被提交到App Store的虚拟应用程序。 通过这个应用程序,我打算testingSDK的屏幕。 我跟着上面的post和文章,并包括一个例外,以不安全的连接到我的本地服务器到虚拟应用程序的Info.plist文件。 它看起来像下面这样:

<key>NSAppTransportSecurity</key> <dict> <key>NSExceptionDomains</key> <dict> <key>localhost</key> <dict> <key>NSIncludesSubdomains</key> <true/> <key>NSExceptionAllowsInsecureHTTPLoads</key> <true/> </dict> </dict> <key>NSAllowsArbitraryLoadsInWebContent</key> <true/> <key>NSAllowsArbitraryLoads</key> <true/> </dict> 

是的,我允许各种例外。 networking响应不会抱怨应用程序没有对localhost的不安全连接发生exception,而只是返回以下内容:

 [Result]: FAILURE: Error Domain=NSURLErrorDomain Code=-1004 "Could not connect to the server." UserInfo={NSUnderlyingError=0x170248940 {Error Domain=kCFErrorDomainCFNetwork Code=-1004 "(null)" UserInfo={_kCFStreamErrorCodeKey=61, _kCFStreamErrorDomainKey=1}}, NSErrorFailingURLStringKey=http://localhost:7878/endpoint, NSErrorFailingURLKey=http://localhost:7878/endpoint, _kCFStreamErrorDomainKey=1, _kCFStreamErrorCodeKey=61, NSLocalizedDescription=Could not connect to the server.} [Timeline]: Timeline: { "Request Start Time": 510144201.835, "Initial Response Time": 510144201.860, "Request Completed Time": 510144201.860, "Serialization Completed Time": 510144201.860, "Latency": 0.025 secs, "Request Duration": 0.025 secs, "Serialization Duration": 0.000 secs, "Total Duration": 0.025 secs } 

我查看服务器日志,没有任何报告。 因此,我认为它不会完全打到服务器上。

任何帮助,将不胜感激。 🙂

谢谢

正如@Teffi在评论中指出的,我在一台没有访问本地机器上运行的本地主机服务器的设备上运行testing。