本文介绍了斯威夫特5& Alamofire 5:GET方法错误:Alamofire.AFError.URLRequestValidationFailureReason.bodyDataInGETRequest(22个字节)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试使用Alamofire从数据库获取记录。我在GET请求中发送参数,如下所示。
I am trying to get records from Database using Alamofire. I am sending parameters in GET request as below.
let headers : HTTPHeaders = ["x-access-token": "\(t)","username":"\(Base.sharedManager.user)","password":"\(Base.sharedManager.pass)"] let parm : [String: Any] = ["search_str" : self!.searchStr] // let searchUrl = Base.sharedManager.URL+"questions/get/"+self!.searchStr let searchUrl = Base.sharedManager.URL+"questions/get/" AF.request(searchUrl, method: .get, parameters: parm, encoding:JSONEncoding.default , headers: headers, interceptor: nil).response { (responseData) in guard let data = responseData.data else { debugPrint("Error getting question data", responseData.error as Any) self?.showNoResults() return } do { let sResults = try JSONDecoder().decode(SearchResults.self, from: data) self!.searchReturn = [sResults] self!.qSearchTV.reloadData() } catch { self?.showNoResults() print("Error retriving questions \(error)") } }执行上述代码时,得到以下错误:获取问题数据时出错可选(Alamofire.AFError.urlRequestValidationFailed(原因:Alamofire.AFError.URLRequestValidationFailureReason.bodyDataInGETRequest(23个字节)))
Got the error below when above code executed: "Error getting question data" Optional(Alamofire.AFError.urlRequestValidationFailed(reason: Alamofire.AFError.URLRequestValidationFailureReason.bodyDataInGETRequest(23 bytes)))
推荐答案您必须删除 parameters参数。
You have to remove the "parameters" parameter.
而不是这样做:
AF.request("httpbin/get", method: .get, parameters: [:], encoding: URLEncoding.httpBody, headers: [:])执行此操作:
AF.request("httpbin/get", method: .get, encoding: URLEncoding.httpBody, headers: [:])更多推荐
斯威夫特5& Alamofire 5:GET方法错误:Alamofire.AFError.URLRequestValidationFailure
发布评论