2017-08-01 1 views
0

Je veux publier des données en tant que paramètre comme ceci:Alamofire: envoyer paramètre

{ 
    "data": 
    [ 
     { 
      "nik" : "lalaal" 
     } 
    ] 
} 

Comment puis-je écrire ces paramètres Swift 3 en utilisant Alamofire?

i essayé:

let parameter: Parameters = [ 
       "data":[[ 
        "nik" : self.nik, 
        "check_type" : "IN", 
        "tanggal" : "01-08-2017 18:22:00", 
        "long" : String(locationList[projectChoosen].long!), 
        "lat" : String(locationList[projectChoosen].lat!), 
        "id_loc" : locationList[projectChoosen].id_project, 
        "id_project" : nil, 
        "nama_project" : locationList[projectChoosen].nama_project, 
        "barcode" : "", 
        "foto": "", 
        "mime_type" : "image/jpeg" 

        ]] 
      ] 
+1

montrer votre code essayé –

+0

Essayez ceci: Alamofire.request ("url", méthode: .post, les paramètres: les paramètres, l'encodage: JSONEncoding.default) – KKRocks

+0

https://stackoverflow.com/a/45437228/ 1242673 –

Répondre

2

Vous pouvez utiliser le code ci-dessous.

let dicRequest: NSDictionary = ["userid" : "test", "password" : "test123"] 

let postParams:NSDictionary = [ 
    "data": dicRequest 
] 
let requestURL: String = String(format: "%@/Login", serverURL) 
Alamofire.request(requestURL, method: .post, parameters: postParams as? [String : AnyObject], encoding: JSONEncoding.default, headers: [:]) 
    .responseJSON { response in switch response.result { 

    case .success(let JSON): 
     print("response :-----> ",response) 
    case .failure(let error): 
     print("Request failed with error: \(error)") 

     } 
} 
+0

ne peut pas :(merci pour votre aide –

+0

j'ai déjà trouvé la réponse ["données": [dicRequest]] –

+0

Ok ... Merci ... – shahnilay86

1

Vous pouvez créer un objet Dictionary premier dans ce formate

{ 
    "data": 
    [ 
     { 
      "nik" : "lalaal" 
     } 
    ] 
} 

Après que vous pouvez convertir cela en utilisant NSJSONSerlisation à chaîne JSON Et que la poste en utilisant Almofire.

let array: [[String: String]] = [["nik": "lalaal"]] 
let data = try JSONSerialization.data(withJSONObject: array, options: JSONSerialization.WritingOptions.prettyPrinted) 
let string = String(data: data, encoding: String.Encoding.utf8) 
let postParam: [String: String] = ["data": string] 

let _ = Alamofire.request(apiType.url!, method: apiType.type!,parameters: postParam, encoding: JSONEncoding.prettyPrinted, headers: nil).validate(statusCode: 200..<500).responseJSON { (response) in 

} 
+0

ne peut pas bro :(de toute façon je vous remercie de votre aide –

0

Voici une demande d'échantillon à l'aide Alamofire et affichant un dictionnaire comme paramètres:

let dataArray: [[String: String]] = [["nik": "lalaal"]] 
let param: [String: [Any]] = ["data": dataArray]  
Alamofire.request(url, method: .post, parameters: param, encoding: JSONEncoding.default, headers: nil).responseJSON { response in }