问题
Code like this:
import Foundation
import Alamofire
struct Request {
var alamoFireManager : SessionManager?
init() {
let configuration = URLSessionConfiguration.default
configuration.timeoutIntervalForRequest = 20
configuration.requestCachePolicy = .useProtocolCachePolicy
alamoFireManager = Alamofire.SessionManager(configuration: configuration)
}
func sendRequest() {
alamoFireManager?.request(url,method: method, parameters: body, encoding: JSONEncoding.default,headers: headers).responseJSON { response in
}
}
}
回答1:
I have done this and it's working (swift 4 Code).
import UIKit
import Alamofire
class SplashViewController: UIViewController {
var alamoFireManager = Alamofire.SessionManager.default
override func viewDidLoad() {
super.viewDidLoad()
self.callPostApi()
}
func callPostApi() {
let configuration = URLSessionConfiguration.default
configuration.timeoutIntervalForRequest = 20 // seconds
configuration.timeoutIntervalForResource = 20
configuration.requestCachePolicy = .useProtocolCachePolicy
alamoFireManager = Alamofire.SessionManager(configuration: configuration)
alamoFireManager.request(url, method: .post, parameters: ["jsondata":base64EncodedString])
.responseJSON { response in
switch (response.result) {
case .success:
print(response.data as? Data)
if let json = response.result.value {
print("JSON: \(json)") // Here is your JSON Response
}
//do json stuff
case .failure(let error):
if error._code == NSURLErrorTimedOut || error._code == -1005{
//HANDLE TIMEOUT HERE
print("TimeOut")
}
print("\n\nAuth request failed with error:\n \(error)")
break
}
}
}
}
回答2:
SessionManager
not works for me correctly. It's better to using code like this in Alamofire:
let request = URLRequest(url: url)
request.httpMethod = "GET"
//Some configuration
Alamofire.request(request).responseJSON {
response in
}
回答3:
It's a timeout error. Just increase the value of the timeout, or improve the performance of your API, if possible.
来源:https://stackoverflow.com/questions/51607630/alamofire-finished-with-error-code-1001