Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Alamofire仅为特定请求设置超时_Ios_Swift_Alamofire_Alamofire Request - Fatal编程技术网

Ios Alamofire仅为特定请求设置超时

Ios Alamofire仅为特定请求设置超时,ios,swift,alamofire,alamofire-request,Ios,Swift,Alamofire,Alamofire Request,我使用Alamofire发送请求,如下所示。我需要知道如何仅为这样的特定请求设置超时 Alamofire.request(URL, method: .post, parameters: parameters, encoding: JSONEncoding.default, headers: headers).validate().responseJSON { (response) in switch response.result { //// } 尝试为该特定请求创建sessionMan

我使用Alamofire发送请求,如下所示。我需要知道如何仅为这样的特定请求设置超时

Alamofire.request(URL, method: .post, parameters: parameters, encoding: JSONEncoding.default, headers: headers).validate().responseJSON { (response) in switch response.result {

////

}

尝试为该特定请求创建sessionManager

let sessionManager: SessionManager = {
    var sessionManager = SessionManager()
    let configuration = URLSessionConfiguration.default
    configuration.timeoutIntervalForRequest = 30  //timeout can be changed from here
    sessionManager = Alamofire.SessionManager(configuration: configuration)
    return sessionManager
}()
并使用此
sessionManager
进行呼叫

sessionManager.request(url, method: .get, parameters: params)...

对于超时,请对特定url或请求使用
timeoutInterval

if let url = NSURL.init(string: "YOUR_URL") {
        var request = URLRequest(url: url as URL)
        request.httpMethod = "POST"
        request.setValue("application/json", forHTTPHeaderField: "Content-Type")

        if let myUrl = NSURL.init(string: "SPECIFIC_URL"),
            myUrl.isEqual(url) {
            request.timeoutInterval = 10 // 10 secs
        }

        let postString = "param1=\(var1)&param2=\(var2)"
        request.httpBody = postString.data(using: .utf8)
        Alamofire.request(request).responseJSON { response in
            ///  handle response here
        }
    }

根据validate()检查状态代码是否在
200内。问题是:它将应用于所有请求。@DuyPhan否。它将仅将配置应用于使用
sessionManager.request的请求。其他请求仍然可以使用Alamofire。请求这是否回答了您的问题?可能重复的