当iOS 13上的响应过大(14kb)时,我们将面临以下网络错误。
[-1103] Error Domain=NSURLErrorDomain Code=-1103 "resource exceeds maximum size"
当我们使用Alamofire时,此问题被视为错误结果,这破坏了我们对结果的处理。
奇怪的是,如果我们直接使用NSURLSession,尽管从日志记录中仍然可以看到此错误,但实际上我们并没有在
session.dataTask(with: request) { value, response, error in ... }
因此,结果可以正确处理。
这个问题从未见过。有人对此有想法吗?
在Slack社区的帮助下,我们找到了答案,就是
on iOS13, it is not allowed to add a body in GET request.
要使其再次正常运行,我们可以切换到POST / PUT请求,也可以通过GET请求的url参数添加正文值。
终于找到答案了。对于GET服务,我试图添加httpBody。像这样:
do { request.httpBody = try JSONSerialization.data(withJSONObject: parameters, options: .prettyPrinted) } catch let error { errorCompletion(error) return }
解决方案是,如果httpMethod是GET,则添加一个if以避免该代码块。似乎是iOS 13的新行为,而Swift给出的错误消息绝对没有帮助