[Swift]使用Alamofire傳遞參數時報錯


Swift使用Alamofire傳遞遞參數時報錯,會提示超時,主要錯誤信息如下:

 

[Result]: FAILURE: Error Domain=NSURLErrorDomain Code=-1001 "請求超時。" UserInfo={NSUnderlyingError=0x60000024bfa0 {Error Domain=kCFErrorDomainCFNetwork Code=-1001 "(null)" UserInfo={_kCFStreamErrorCodeKey=-2102, _kCFStreamErrorDomainKey=4}}, NSErrorFailingURLStringKey=你的請求地址, NSErrorFailingURLKey=你的請求地址, _kCFStreamErrorDomainKey=4, _kCFStreamErrorCodeKey=-2102, NSLocalizedDescription=請求超時。}

 

我的主要請求代碼:

func NetworkMain(URL: String, paras: Parameters,method: HTTPMethod,finishedCallback:@escaping (_ result:JSON)->()){
        //let paras: Parameters = ["exFlag":"3","PhotoID" : photoID]
        let requestAttr = Alamofire.request(URL, method: method, parameters: paras, encoding: JSONEncoding.default, headers: heads).responseData{ 
        下面代碼省略...

因為初次使用Alamofire,例子是照抄別人的,一直想不通為什么不傳參數就正常,傳參數就不能正常獲取數據。網上也沒有人遇到這個問題,反復檢查了參數的格式和Alamofire的版本,發現並沒問題啊。

最后查閱Alamofire的github使用說明,發現參數的編碼類型是有很多種。嗯,問題就在這里了,將 encoding: JSONEncoding.default 改為 encoding: URLEncoding.default ,請求成功!

參數可指定多個編碼類型,有興趣的請查閱Alamofire的說明文檔。

原文地址:http://www.cnblogs.com/txwd/p/7396156.html,轉載請標明出處!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM