阿拉莫火在 int 上转换布尔值



我有请求的函数,也有参数的字典。包含字典 [字符串,任意]。我需要在参数中发送布尔值,但 alamofire 在 Int 上转换我的布尔值,服务器无法获取它。如何发送布尔?

我的函数:

func postDataFor(methodPath: String, params:[String:Any], completion: @escaping (Any)->()) {
    guard let url = URL(string:baseURL+methodPath) else {print("fail url"); return}
        let token_type = KeychainWrapper.standard.string(forKey: "token_type")
        let access_token = KeychainWrapper.standard.string(forKey: "access_token")
        let headers:HTTPHeaders? = ["Authorization": "(token_type ?? "") (access_token ?? "")"]

        Alamofire.request(url, method: .post, parameters: params, encoding: URLEncoding.queryString, headers: headers).response { response in
            if let data = response.data {
                completion(data)
            } else {
           print("error")
        }
    }
}

我尝试发送:

    ▿ 2 elements
  ▿ 0 : 2 elements
    - key : "promoId"
    - value : 6
  ▿ 1 : 2 elements
    - key : "isFavorite"
    - value : true

但这发送了阿拉莫火:

?isFavorite=1&promoId=6 

我想所有这些值都存储在params.如果是这样,请将isFavorite更改为字符串:

let params = [
    "promoId": 6,
    "isFavorite": String(isFavorite)
]

用于编码参数:

let encoding = URLEncoding.init(boolEncoding: URLEncoding.BoolEncoding.literal)
Alamofire.request(url, method: .post, parameters: params, encoding: encoding, headers: headers).response { response in
  if let data = response.data {
    completion(data)
  } else {
    print("error")
  }
}

最新更新