斯威夫特:Alamofire Post

时间:2016-07-18 23:11:47

标签: json swift alamofire

我一直在开发一款应用,我必须使用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的方法。 任何帮助表示赞赏。

3 个答案:

答案 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