使用Alamofire
,swiftyJSON
和swift4
,我会收到此错误
错误:responseSerializationFailed(Alamofire.AFError.ResponseSerializationFailureReason.jsonSerializationFailed(错误域= NSCocoaErrorDomain代码= 3840“垃圾结束。” UserInfo = {NSDebugDescription =垃圾结束。}))
在使用此API时
class func getLatestProducts( completion: @escaping (_ error: Error?, _ success: Bool,_ value: ErrorModel) -> Void) {
let url = URLs.latestProducts
print("url::: ", url)
Alamofire.request(url, method: .get, encoding: URLEncoding.default, headers: nil)
.responseJSON { reponse in
switch reponse.result {
case .failure(let error):
print("error: ", error)
completion(error, false, ErrorModel())
case .success(let value):
let json = JSON(value)
print(json)
completion(nil, true, ErrorModel())
}
}
}
在不同站点进行测试时,响应采用快速格式,这就是响应
{
"data": [
{
"id": 4,
"title": "Ut incidunt et dolorem inventore qui sunt harum.",
"price": "49",
"category_id": "13",
"modern": "1",
"fixed": "0",
"created_at": "2018-08-11 18:31:06",
"category": {
"id": 13,
"name": "Aliquam impedit.",
"icon": "LawnGreen"
},
"image": [
{
"id": 15,
"image": "https://lorempixel.com/640/480/?78973",
"product_id": "4"
}
]
},
{
"id": 24,
"title": "apple iPhone X",
"price": "5000",
"category_id": "28",
"modern": "0",
"fixed": "1",
"created_at": "2018-08-10 19:38:29",
"category": {
"id": 28,
"name": "قسم الجوالات",
"icon": "fas fa-mobile-alt"
},
"image": [
{
"id": 10,
"image": "m4cRboy.png",
"product_id": "24"
}
]
},
{
"id": 23,
"title": "Mollitia consectetur sed proident commodo ipsam eos dolorem harum magni consequatur aliquid quos dolorem optio consequuntur aut consequat",
"price": "203",
"category_id": "28",
"modern": "0",
"fixed": "1",
"created_at": "2018-08-08 06:54:11",
"category": {
"id": 28,
"name": "قسم الجوالات",
"icon": "fas fa-mobile-alt"
},
"image": [
{
"id": 9,
"image": "pXOdboy2.png",
"product_id": "23"
}
]
}
]
}
这是什么问题?
答案 0 :(得分:0)
1-添加它而不是nil头
let headers : HTTPHeaders = ["Content-Type":"application/json"]
2-添加
.validate().responseJSON