2017-09-22 1 views
0

im la création d'une demande de poste à l'aide alamofire bibliothèque, je veux envoyer un paramètre qui est:demande après l'envoi de ce paramètre de type [String: Tous] et un corps de type chaîne

let parameters: Parameters = ["customer_id":customerId!,"customer_new":"0","x-session":getXSession()] 

et un corps qui est de type chaîne, le corps:

fbackAnswers string = [{"type_id":"17","value":"4"},{"type_id":"12","value":"TEST"},{"type_id":"14","value":"3"},{"type_id":"19","value":"4"},{"type_id":"16","value":"3"},{"type_id":"13","value":"3"},{"type_id":"18","value":"3"},{"type_id":"15","value":"3"},{"type_id":"2","value":"4"},{"type_id":"11","value":"1"},{"type_id":"1","value":"2"},{"type_id":"8","value":"4"},{"type_id":"6","value":"2"},{"type_id":"4","value":"22-09-2017 - 15:12"},{"type_id":"5","value":"Test"}] 

J'ai fait cette demande ci-dessous:

static func sendFeedbackResultOldCustomer(customerId: String?,fbackAnswers:String? , completion: @escaping (Bool , String?) ->()){ 
      let fbackAns:String! = fbackAnswers! 
      let parameters: Parameters = ["customer_id":customerId!,"customer_new":"0","x-session":getXSession()] 

      Alamofire.request(APIStrings.feedbackSent, method: HTTPMethod.post, parameters: parameters, encoding: fbackAns, headers: nil).responseJSON { (response) in 


       if (success){ 
        completion(true, nil) 
       } 
       else { 
        completion(false, response?.result.error as? String) 
       } 
      } 

its me donner une erreur: argument supplémentaire dans l'appel, s'il vous plaît corriger pour moi si ce n'est pas le moyen d'envoyer ce type de demandes, et si c'est le cas, s'il vous plaît aidez-moi à trouver l'erreur. grâce

+0

Vous envoyez mal param: 'encodage: fbackAns' il sera' encodage: URLEncoding.default' –

+0

Et où sont censés être « paramètres »? Habituellement, les params sont dans le corps. Est-ce que le vôtre est supposé être dans les URL? – Larme

+0

oui, un paramètre dans l'URL, et le corps, ne devrait pas être dans le paramètre. Alors, où dois-je envoyer le corps? –

Répondre

0

Essayez avec ceci:

Il semble que le parameter est un en-tête et le fbackAns est un paramètre.

static func sendFeedbackResultOldCustomer(customerId: String?,fbackAnswers:String? , completion: @escaping (Bool , String?) ->()){ 
      let fbackAns:String! = fbackAnswers! 
      let parameters: Parameters = ["customer_id":customerId!,"customer_new":"0","x-session":getXSession()] 

      Alamofire.request(APIStrings.feedbackSent, method: HTTPMethod.post, parameters: fbackAns, encoding: URLEncoding.default, headers: parameters).responseJSON { (response) in 


       if (success){ 
        completion(true, nil) 
       } 
       else { 
        completion(false, response?.result.error as? String) 
       } 
      } 
+0

est-ce que le paramètre contient le corps dans la demande de publication? –

+0

Oui, c'est un corps! ici nous l'appelons params –