遇到了一样的问题, iPhone 5s 12.5版本demo单独跑
JSONEncoder().encoder(1)
JSONEncoder().encoder("1")
都会出错
还是在Moya库里调用报错
requestJSONEncodable(1)内部会调用
解决办法扩充一个编码类型
传入的时候用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() }
}