我使用以下代码将图像发布到我的服务器。
@IBAction func postButtonPressed(sender: UIButton) {
let task = NSURLSession.sharedSession().dataTaskWithRequest(createRequest("http://xx.xx.xxx.xxx/xxxx/"), completionHandler: {
data, response, error in
println(NSString(data: data, encoding: NSUTF8StringEncoding))
})
task.resume()
}
其中createRequest()
创建所需的NSURLRequest对象。
使用模拟器时,此功能正常。问题是当我在iPhone上运行我的应用程序时出现以下错误。
Error Domain=NSURLErrorDomain Code=-1001 "The operation couldn’t be completed. (NSURLErrorDomain error -1001.)" UserInfo=0x155e71f0 {NSErrorFailingURLKey=http://xx.xxx.xxx.xxx/xxxx/, NSErrorFailingURLStringKey=http://54.148.156.117/query/, NSUnderlyingError=0x155674d0 "The operation couldn’t be completed. (kCFErrorDomainCFNetwork error -1001.)"}
我了解到这个错误是超时错误。重新启动应用程序或手机没有帮助。此外,我已经尝试从网络浏览器将图像发布到我的服务器,它没有问题。
可能导致此超时错误的原因是什么?
编辑:当我监控网络活动时,即使我发送的图片为0.1 MB,我也意识到该应用会发送10 MB数据。
答案 0 :(得分:8)
显然我的帖子请求收到超时错误,因为我发送了一个服务器发现太大的图像。我按比例缩小图像以使服务器接受我的图像。
正如this post所示,NSURLErrorDomain Code=-1001
错误可能是由许多内容引起的,包括;
希望对其他人有所帮助
答案 1 :(得分:2)
在我的案例中,问题出在第三方库 - FirebasePerformance
。
错误报告网址:https://github.com/firebase/firebase-ios-sdk/issues/486
答案 2 :(得分:2)
回复已经很晚了,但我最近在运行分配给我的新应用程序时遇到了错误。该应用程序是我公司系统管理员 URL域被阻止之一 我请他们允许我访问URL,之后响应来了,应用程序运行完美 对于每个人来说,这可能不是实际的解决方案,但是有些开发人员可能会受限制的环境可以获得帮助。
答案 3 :(得分:1)
我已将标头与application / json结合使用并根据请求进行发送:
let headers: HTTPHeaders = [
.accept("application/json")
]
AF.request(url, method: .post, parameters: score, encoder: JSONParameterEncoder.default, headers: headers)
答案 4 :(得分:0)
嗯,在我的情况下,简单地增加请求的超时即可解决问题。