gpt4 book ai didi

ios - Alamofire .post API 错误 : Code=3840 "Invalid value around character 1

转载 作者:行者123 更新时间:2023-11-28 18:48:55 25 4
gpt4 key购买 nike

将 Alamofire 用于 .post api,api 在 postman 中提供数据但不在我的代码中。在代码下方发布,请指导我在这里做错了什么:

// API calling method:

parameters = [
"Address" : "" as AnyObject,
"Name" : "" as AnyObject,
"ServiceID" : "" as AnyObject,
"Rating" : "" as AnyObject,
"Price" : "" as AnyObject
]

let headers: Dictionary = [
"" : ""
]

print(parameters)

ApiServices.requestPOSTURL(strURL, params: parameters, headers: headers, success:{

(JSONResponse) -> Void in

CommonMethodsClass.hideHUD(targetView: self.view)

print(JSONResponse["message"])

let strMsg = JSONResponse["message"].stringValue


if (JSONResponse["status"].intValue == 1)
{

}
else
{
CommonMethodsClass.showAlertMessage(vc: self, titleStr: "Error!", messageStr: strMsg)
}

}) {
(error) -> Void in
print(error)

CommonMethodsClass.hideHUD(targetView: self.view)
}


// Api request method:
class func requestPOSTURL(_ strURL : String, params : [String : AnyObject]?, headers : [String : String]?, success:@escaping (JSON) -> Void, failure:@escaping (Error) -> Void){

Alamofire.request(strURL, method: .post, parameters: params, encoding: JSONEncoding.default).responseJSON { (responseObject) -> Void in

print(responseObject)

if responseObject.result.isSuccess {
let resJson = JSON(responseObject.result.value as Any)
success(resJson)
}
if responseObject.result.isFailure {
let error : Error = responseObject.result.error!
failure(error)
}
}
}

Error: FAILURE: responseSerializationFailed(Alamofire.AFError.ResponseSerializationFailureReason.jsonSerializationFailed(Error Domain=NSCocoaErrorDomain Code=3840 "Invalid value around character 1." UserInfo={NSDebugDescription=Invalid value around character 1.}))

更新:对解析的响应,可能还需要更改。

{
"status": true,
"message": "",
"data": [
{
"SalonID": "1",
"SalonName": "Affinity",
"SalonEmail": "vay.chaan@th-rce.com",
"SalonPhone": "9999888877",
"SalonMobile": "9999888877",
"SalonAddress": "C-28, Sec-58, India",
"Latitude": "18.5806",
"Longitude": "27.36273",
"Image": null,
"SalonImage": "",
"TimeIntervalminutes": 20,
"AverageRating": 4,
"IsActive": 1
},
{
"SalonID": "3",
"SalonName": "Looks",
"SalonEmail": "rad@th-rce.com",
"SalonPhone": "99998828877",
"SalonMobile": "99998388877",
"SalonAddress": "GP Mall,India",
"Latitude": "",
"Longitude": "",
"Image": null,
"SalonImage": "",
"TimeIntervalminutes": 30,
"AverageRating": 5,
"IsActive": 1
}
]
}

最佳答案

responseJSON 替换为 responseString

您需要将字符串转换为值。你能更新问题中的字符串吗?

您可以使用此函数将响应字符串转换为 JSON:

func convertToDictionary(text: String) -> [String: Any]? {
if let data = text.data(using: .utf8) {
do {
return try JSONSerialization.jsonObject(with: data, options: []) as? [String: Any]
} catch {
print(error.localizedDescription)
}
}
return nil
}

字符串:let str = "{\"name\":\"James\"}"

用法:let dict = convertToDictionary(text: str)

关于ios - Alamofire .post API 错误 : Code=3840 "Invalid value around character 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45998605/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com