0

我有一个用 Swift 2 编写的移动 iOS 应用程序。在应用程序内部,通过调用我们的服务器

Session.dataTaskWithRequest(request, completionHandler: (func))

我有 3 台带有蜂窝数据的 iPad。1个内部,我可以访问并可以连接到调试器。2 外部我无法访问,必须提出问题才能了解正在发生的事情。

内部 iPad 可以在 WiFi 和蜂窝网络上与 build X 一起使用,我的意思是请求通过并很好地联系服务器。

外部 iPad 可通过 WiFi 工作,但不能通过蜂窝网络工作。

我们已经尝试过

  • 确保特定应用的移动数据已开启和开启
  • 切换飞行模式
  • 重置网络
  • 重启设备
  • 确保设备在dataTaskWithRequest失败时确实有连接。

关于这里可能发生的事情的任何想法?有没有遗漏的设置?我错过了 info.plist 中的设置(为什么 1 有效)?

4

1 回答 1

0

所以 dgatwood 走在了正确的轨道上。

应用程序内部的请求在某些情况下被重新路由到外部服务器,在其他情况下被重新路由到内部服务器。由于这些请求来自 WKWebView,它们具有来自 WKWebView 的标准 HTTPHeaderFields。由于这些请求向内指向了一个小型服务器,该服务器被写入应用程序的后台,因此这三个标头包含请求的错误信息

  • 起源
  • 推荐人
  • 主持人

在合作数据计划中,对请求进行了过滤。由于标头字段中声明的来源与呼叫来源不匹配,因此蜂窝网络正在丢弃请求,并且它们从未真正到达服务器。

该问题已由

request.setValue(nil, forHTTPHeaderField: "Origin")
request.setValue(nil, forHTTPHeaderField: "Host")
request.setValue(nil, forHTTPHeaderField: "Referer")

希望有人在某个时候发现这很有帮助

于 2016-08-04T16:52:47.497 回答