Je suis en train de faire une demande de poste de alamofire, je vous envoie un paramètre et un corps, comme suit:argument supplémentaire dans l'appel alamofire rapide 3
static func sendFeedbackResultOldCustomer(customerId: String?,fbackAnswers:String? ,answers: String?, completion: @escaping (Bool , String?) ->()){
let parameters: Parameters = ["customer_id":customerId!,"customer_new":"0","x-session":getXSession()]
request(urlString: APIStrings.feedbackSent, parameters: parameters, method: .post, headers: nil, encoding: answers, updateXsession: false) { (success, error, errorMsg, response) in
if(success) {
completion(true, nil)
}
else {
completion(false, response?.result.error as? String)
}
}
}
le code de demande:
fileprivate static func request (urlString: String!, parameters: Parameters?, method: HTTPMethod, headers: HTTPHeaders?,encoding: String!, updateXsession: Bool, completion: @escaping(Bool, Error?, String?, DataResponse<Any>?) ->()) {
Alamofire.request(urlString, method: method, parameters: parameters, headers: headers,encoding:encoding).responseJSON { (response) in// here is the error (extra argument method in call)
let contentType = response.response?.allHeaderFields["X-Session"] as? String
if (updateXsession)
{
UserDefaults.standard.set(contentType, forKey: "x-session")
}
let success = checkIfSuccess(response: response)
if(success){
completion(success, nil, nil, response)
} else {
completion(success, response.error, "Failed", nil)
}
}
dans la requête alamofire, je reçois l'erreur suivante: Argument supplémentaire dans l'appel. une idée de ce qui se passe?
parametes im envoi:
let parameters: Parameters = ["customer_id":customerId!,"customer_new":"0","x-session":getXSession()]
corps im essayant d'envoyer:
X_types = [{"type_id":"17","value":"3"},{"type_id":"12","value":"test"},{"type_id":"14","value":"4"},{"type_id":"19","value":"3"},{"type_id":"16","value":"4"},{"type_id":"13","value":"3"},{"type_id":"18","value":"4"},{"type_id":"15","value":"4"},{"type_id":"2","value":"4"},{"type_id":"11","value":"1"},{"type_id":"1","value":"3"},{"type_id":"8","value":"3"},{"type_id":"6","value":"2"},{"type_id":"4","value":"22-09-2017 - 12:1"},{"type_id":"5","value":"Test"}]
X_types est été envoyé dans le codage, comme une chaîne (x_types est le type de chaîne)
et où puis-je envoyer le corps dans ce cas? si j'ai changé l'encodage en JSONEncoding.default ?? –
Transférer le corps en tant que paramètres, les paramètres seront de type dictionnaire '[String: Any]' . –
mais j'ai un dictionnaire de type de paramètre [String: Any], dois-je envoyer le corps aussi dans le paramètre? Je l'ai essayé, cela n'a pas fonctionné, il devrait être envoyé dans le corps –