【发布时间】:2020-06-09 23:07:45
【问题描述】:
我正在创建字典数组,然后将其传递到 paramDictionary 并发送到服务器,但我得到 responseStatus 代码 422。我正在使用 Alamofire 5。
这是我必须发送的参数结构,它在邮递员上成功运行,但在应用程序中总是失败
{"check_in": [{"check_in_at":"2020-02-26 03:23:44", "gps_coordinates":"3.1697998046875,101.61672197976593"},
{"check_in_at":"2020-02-26 03:23:45","gps_coordinates":"3.1697998046875,101.61672197976593"}]}
这是我的代码
func postCheckInApi(viewController: UIViewController,
completion:@escaping (_ result:SuccessErrorData)->(),
errorHandler:@escaping (_ result:Error,_ statusCode:Int?)->()//error handler
) {
let url = KCheckin
let geoArr = Constant.getSearchLocationHistory() ?? [GeoTaggingEntity]()
var arr = [[String: String]]()
for i in geoArr{
let dict: [String : String] = ["gps_coordinates" : i.gps_coordinates ?? "", "check_in_at" : i.check_in_at]
arr.append(dict)
}
let parameterDictionary = ["check_in": arr] as [String : Any]
print(parameterDictionary)
let headers: HTTPHeaders = [
"Accept": "application/json",
"Content-Type": "application/json",
"Authorization": Constant.getBearerToken() ?? ""
]
AF.request(url, method: .post, parameters: parameterDictionary, headers: headers).responseData { response in
switch response.result{
case.success(let data):
do{
let jsonData = try JSONDecoder().decode(SuccessErrorData.self, from: data)
print("Success")
completion(jsonData)
}
catch{
//viewController.navigationController?.popToRootViewController(animated: true)
}
case .failure(let error):
print(error)
}
}
}
【问题讨论】:
-
我在您的字典中看不到 check_in_at 键,同时将其添加到数组中。请同时添加该密钥
-
能否请您出示
print(parameterDictionary)的回复 -
@Gyanendra 这里是“让 dict: [String : String] = ["gps_coordinates" : i.gps_coordinates ?? "", "check_in_at" : i.check_in_at]"
-
@Manoj。这里是 ["check_in": [["gps_coordinates": "3.170011520385742,101.61671682755713", "check_in_at": "2020-02-26 07:02:44"], ["check_in_at": "2020-02-26 07 :02:45", "gps_coordinates": "3.170011520385742,101.61671682755713"]]]
-
您可以在 POSTMAN 中完成您的请求吗?如果是这样,您可以要求 POSTMAN 为您获取 Swift 代码(错误代码,但您可以找到差异),或者您可以使用 POSTMAN 生成 Alamofire 也可以翻译的
curl代码。卷曲比较:stackoverflow.com/questions/53637437/alamofire-with-d/…