我一直在开发一款应用,我必须使用alamofire发布。 但是,我一直在收到错误,说
FAILURE 错误:反馈提交失败。 可选("操作无法完成.JSON无法序列化。输入数据为零或零长度。")
我的代码看起来像这样
let reportJSON: [String : AnyObject] = [
"Name" : nameTextField.text!,
"Message" : reportTextView.text!
]
Alamofire.request(.POST, "API", parameters: reportJSON, encoding: .JSON).responseJSON{ response in
print(response.result)
guard response.result.error == nil else{
print("Error: feedback submission failed.")
print(response.result.error?.localizedDescription)
return
}
if let responseValue = response.result.value{
let recipeList = JSON(responseValue)
print(recipeList)
}
}
我对.GET没有任何问题,但我无法弄清楚使用.POST的方法。 任何帮助表示赞赏。
答案 0 :(得分:0)
您似乎没有传递正确的网址,而是将“API”更改为帖子的有效网址。
答案 1 :(得分:0)
您可以使用以下方法使用Alamofire和Swift 3进行POST请求:
let headers = [
"Accept": "application/json",
"Authorization" : "Authorization: Bearer ", //if any
"Cookie" : "Cookie" //if any
]
let parameterDict: NSDictionary = NSDictionary.init(objects: [nameTextField.text!, reportTextView.text!], forKeys: ["Name" as NSCopying,"Message" as NSCopying])
Alamofire.request("API",method: .post, parameters: parameterDict as? [String : AnyObject] , encoding:JSONEncoding.default, headers:headers) .responseJSON { response in switch response.result {
case .success(let JSON):
print("Success with JSON: \(JSON)")
let response = JSON as! NSDictionary
case .failure(let error):
print("Request failed with error: \(error)")
}
}
答案 2 :(得分:0)
您可以使用以下代码进行post方法的JSON解析。
Q