2017-03-13 72 views
0

在我的应用程序中,我使用Alamofire进行网络请求,并创建了一个类。这里是类Alamofire超时不起作用

class MGNetworking: NSObject{ 


    private class func getAlamofireManager() -> SessionManager { 
     let configuration = URLSessionConfiguration.default 
     configuration.timeoutIntervalForResource = 180 // seconds 
     configuration.timeoutIntervalForRequest = 180 // seconds 

     let alamofireManager = Alamofire.SessionManager(configuration: configuration) 

     return alamofireManager 
    } 

    class func requestGETURL(_ strURL: String, success:@escaping (JSON) -> Void, failure:@escaping (Error) -> Void) { 

     getAlamofireManager().request(strURL,method: .get).responseJSON { (responseObject) -> Void in 

      if responseObject.result.isSuccess { 
       let resJson = JSON(responseObject.result.value!) 
       success(resJson) 
      } 
      if responseObject.result.isFailure { 
       let error : Error = responseObject.result.error! 
       failure(error) 
      } 
     } 
    } 



    class func requestPOSTURL(_ strURL : String, params : [String : AnyObject]?, headers : [String : String]?, success:@escaping (JSON) -> Void, failure:@escaping (Error) -> Void){ 

     getAlamofireManager().request(strURL, method: .post, parameters: params, encoding: URLEncoding.default, headers: headers).responseJSON { (responseObject) -> Void in 

      if responseObject.result.isSuccess { 
       let resJson = JSON(responseObject.result.value!) 
       success(resJson) 
      } 
      if responseObject.result.isFailure { 
       let error : Error = responseObject.result.error! 
       failure(error) 
      } 
     } 
    } 

} 

我想更改我的网络请求超时。我创建了方法getAlamofireManager(),但是当我调用此方法时,我的请求在此处取消是错误。

FAILURE: Error Domain=NSURLErrorDomain Code=-999 "cancelled" 

当我改变getAlamofireManager()Alamofire.request它开始工作完美。

+0

不要忘了配置对象应该是可变(VAR),如果你想设置的属性。目前它是让。 – torinpitchers

+0

你解决了这个问题吗? – Nilesh

回答

0

我可以假设问题与this报告的问题有关。

所以,让我们重写代码:

class MGNetworking: NSObject{ 

var manager: SessionManager? 

init() { 
    manager = getAlamofireManager() 
} 

    private class func getAlamofireManager() -> SessionManager { 
    let configuration = URLSessionConfiguration.default 
    configuration.timeoutIntervalForResource = 180 // seconds 
    configuration.timeoutIntervalForRequest = 180 // seconds 

    let alamofireManager = Alamofire.SessionManager(configuration: configuration) 

    return alamofireManager 
} 
} 

所以现在使用manager代替getAlamofireManager()的请求

+0

我试过这种方式,但我得到同样的错误。 – pmb

+0

@pmb您使用的是什么网址? HTTP或Https –

+0

我使用的是https – pmb