[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.rzrgm.cn/txwd/p/7396156.html,轉載請標明出處!
Hello world!

浙公網安備 33010602011771號