【发布时间】:2021-06-09 10:07:30
【问题描述】:
我正在尝试使用 body 向 WebService 发送一个整数值,所以我创建了一个这样的函数:
static func GetRoomVersionAndRemainingSeconds(auctionId:Int,completed:@escaping (ServiceResultDene<String>)->()){
var memberJson : String = ""
do{
let jsonEncoder = JSONEncoder()
let jsonData = try jsonEncoder.encode(auctionId)
memberJson = String(data: jsonData, encoding: String.Encoding.utf8)!
}catch{
print(error)
}
var request = URLRequest(url: URL(string: WebServiceUrls.GetRoomVersionAndRemainingSeconds)!)
request.httpMethod = HTTPMethod.post.rawValue
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.setValue(Util.cookie, forHTTPHeaderField: "Cookie")
request.httpBody = (memberJson).data(using: .unicode)
Alamofire.request(request).responseJSON{response in
....
}
当我尝试上面的代码时,它完美地编码了IOS 13+ 上的整数值——memberJson is = "\"4\""
但是当我在IOS 12.4 上尝试这个时它不会编码并且error.localizedDescription 返回:invalidValue(4, Swift.EncodingError.Context(codingPath: [], debugDescription: "Top-level Int encoded as number JSON fragment.", underlyingError: nil))
这里有什么问题?任何建议都可以。谢谢
【问题讨论】:
-
不要打印
error.localizedDescription,打印error -
更新@vadian