Swift: Alamofire Post

json swift alamofire

432 просмотра

3 ответа

40 Репутация автора

Я занимаюсь разработкой приложения, и я должен использовать alamofire для публикации. Тем не менее, я продолжаю получать ошибку, говоря

Ошибка. Ошибка при отправке отзыва. Необязательно («Операция не может быть завершена. 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. Любая помощь приветствуется.

Автор: hikki Источник Размещён: 18.07.2016 11:11

Ответы (3)


0 плюса

1682 Репутация автора

Похоже, вы не передаете правильный URL вместо «API» для изменения действительного URL для сообщения.

Автор: neydroid Размещён: 19.07.2016 01:48

0 плюса

325 Репутация автора

Вы можете использовать следующий метод для запроса POST, используя Alamofire и Swift 3:

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)")


         }
    }
Автор: swetansh kumar Размещён: 01.11.2017 06:51

0 плюса

71 Репутация автора

Вы можете использовать следующий код для анализа JSON для метода post.

   Alamofire.request("URL" , method : .post,
                      headers: headers)
        .responseJSON { response in
            // do whatever you want here
            switch response.result {
            case .failure(let error): break
                self.popupp(elrtdata : "Please try again latter.")
            case .success(let responseObject):

                if((response.result.value) != nil) {

                    do{
                        let swiftyJsonVar = JSON(response.result.value!)
                        print(swiftyJsonVar) }
Автор: e-LogicSense Размещён: 25.01.2018 09:21
Вопросы из категории :
32x32