遇到了一樣的問(wèn)題, iPhone 5s 12.5版本demo單獨(dú)跑
JSONEncoder().encoder(1)
JSONEncoder().encoder("1")
都會(huì)出錯(cuò)
還是在Moya庫(kù)里調(diào)用報(bào)錯(cuò)
requestJSONEncodable(1)內(nèi)部會(huì)調(diào)用
解決辦法擴(kuò)充一個(gè)編碼類型
傳入的時(shí)候用key: value形式, key就是"value"
public struct BasicJSONEncoding: ParameterEncoding {
public func encode(_ aurlRequest: URLRequestConvertible, with parameters: Parameters?) throws -> URLRequest {
var urlRequest = try aurlRequest.asURLRequest()
guard let value = parameters?["value"] else { return urlRequest }
do {
let data = try JSONSerialization.data(withJSONObject: value, options: .fragmentsAllowed)
if urlRequest.value(forHTTPHeaderField: "Content-Type") == nil {
urlRequest.setValue("application/json", forHTTPHeaderField: "Content-Type")
}
urlRequest.httpBody = data
} catch {
throw AFError.parameterEncodingFailed(reason: .jsonEncodingFailed(error: error))
}
return urlRequest
}
public static var `default`: BasicJSONEncoding { return BasicJSONEncoding() }
}
To_888 評(píng)論自JSONEncoder 基礎(chǔ)類型編碼失敗的解決方法