斯威夫特5& Alamofire 5:GET方法错误:Alamofire.AFError.URLRequestValidationFailureReason.bodyDataInGETRequest(22个字节) [英] Swift 5 & Alamofire 5 : GET method ERROR: Alamofire.AFError.URLRequestValidationFailureReason.bodyDataInGETRequest(22 bytes)

查看:1301
本文介绍了斯威夫特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("https://httpbin.org/get",
              method: .get,
              parameters: [:],
              encoding: URLEncoding.httpBody,
              headers: [:])

执行此操作:

AF.request("https://httpbin.org/get",
              method: .get,
              encoding: URLEncoding.httpBody,
              headers: [:])

这篇关于斯威夫特5& Alamofire 5:GET方法错误:Alamofire.AFError.URLRequestValidationFailureReason.bodyDataInGETRequest(22个字节)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆