关于使用管理器的 Alamofire 版本
About Alamofire version for use manager
我用这个代码。
var apiPath : String = "/api/list/"
let configuration = NSURLSessionConfiguration.defaultSessionConfiguration()
configuration.timeoutIntervalForRequest = 60
let manager = Alamofire.Manager(configuration: configuration)
manager.session.configuration.HTTPAdditionalHeaders = ["_token" : self._token]
manager.request(.GET, self._host + self._url + apiPath, parameters: nil)
.responseSwiftyJSON ({ (request, response, resultJson, error) in
if (resultJson["Success"]) {
//get list success
} else {
println("request : \(request)")
println("response : \(response)")
println("resultJson : \(resultJson)")
println("error : \(error)")
}
})
我遇到了一些问题
Alamofire 版本 1.2.1:没问题
Alamofire 版本 1.2.2 和 1.2.3:
request : { URL: https://test.com/api/list/ }
response : nil
resultJson : null
error : Optional(Error Domain=NSURLErrorDomain Code=-999 "cancelled"
UserInfo=0x7feb92c434f0 {NSErrorFailingURLKey=https
://test.com/api/list/, NSLocalizedDescription=cancelled,
NSErrorFailingURLStringKey=http s://test.com/api/list/})
为什么在版本 1.2.2 和 1.2.3 上响应为 nil 而 resultJson 为 null
请帮我看看这段代码有什么问题..
我今天刚把 Alamofire 从 1.2.1 更新到 1.2.3 后遇到了和你一样的问题。
我发现通过在末尾和 responseJSON 块内添加 "manager.session.invalidateAndCancel()" 解决了这个问题。但是我无法理解的是,responseJSON 块中的这行代码如何影响 responseJSON 结果。
无论如何,我会 运行 进行此修复,直到 Alamofire 团队修复它或有人向我解释为什么会这样。
我注意到您的 API 端点指向安全连接:
httpS://test.com/api/list/
试试以防万一,说不定又重复你的情况
就我而言,这是 API 管理器代码中的错字。从这部分可以说是与App Transport Security Settings有关。
刚刚将受保护的协议从 httpS://
更改为 http://
并且错误:
NSURLErrorDomain Code = -999 "cancelled"
消失了,一切正常!
+如果您也有类似的问题。请务必 与处理服务器或 API 应用程序配置的后端专家 讨论此问题。这意味着服务器没有有效的安全证书。也许您仍然需要安全连接。或者这位专家可以再次配置从 http://
到 httpS://
的所有内容,我不确定(没有检查)当您在代码中已经使用非安全 http://
连接。
我用这个代码。
var apiPath : String = "/api/list/"
let configuration = NSURLSessionConfiguration.defaultSessionConfiguration()
configuration.timeoutIntervalForRequest = 60
let manager = Alamofire.Manager(configuration: configuration)
manager.session.configuration.HTTPAdditionalHeaders = ["_token" : self._token]
manager.request(.GET, self._host + self._url + apiPath, parameters: nil)
.responseSwiftyJSON ({ (request, response, resultJson, error) in
if (resultJson["Success"]) {
//get list success
} else {
println("request : \(request)")
println("response : \(response)")
println("resultJson : \(resultJson)")
println("error : \(error)")
}
})
我遇到了一些问题
Alamofire 版本 1.2.1:没问题
Alamofire 版本 1.2.2 和 1.2.3:
request : { URL: https://test.com/api/list/ }
response : nil
resultJson : null
error : Optional(Error Domain=NSURLErrorDomain Code=-999 "cancelled" UserInfo=0x7feb92c434f0 {NSErrorFailingURLKey=https ://test.com/api/list/, NSLocalizedDescription=cancelled, NSErrorFailingURLStringKey=http s://test.com/api/list/})
为什么在版本 1.2.2 和 1.2.3 上响应为 nil 而 resultJson 为 null 请帮我看看这段代码有什么问题..
我今天刚把 Alamofire 从 1.2.1 更新到 1.2.3 后遇到了和你一样的问题。
我发现通过在末尾和 responseJSON 块内添加 "manager.session.invalidateAndCancel()" 解决了这个问题。但是我无法理解的是,responseJSON 块中的这行代码如何影响 responseJSON 结果。
无论如何,我会 运行 进行此修复,直到 Alamofire 团队修复它或有人向我解释为什么会这样。
我注意到您的 API 端点指向安全连接:
httpS://test.com/api/list/
试试以防万一,说不定又重复你的情况
就我而言,这是 API 管理器代码中的错字。从这部分可以说是与App Transport Security Settings有关。
刚刚将受保护的协议从 httpS://
更改为 http://
并且错误:
NSURLErrorDomain Code = -999 "cancelled"
消失了,一切正常!
+如果您也有类似的问题。请务必 与处理服务器或 API 应用程序配置的后端专家 讨论此问题。这意味着服务器没有有效的安全证书。也许您仍然需要安全连接。或者这位专家可以再次配置从 http://
到 httpS://
的所有内容,我不确定(没有检查)当您在代码中已经使用非安全 http://
连接。