2017-07-26 115 views
0

我想提出一個要求機智Alamofire這樣的: postman request如何發送表單數據體Alamofire

正如你所看到的,我已經叫參數「數據」,它的值是一個JSON,

我該如何使用Alamofire做到這一點?

我試圖與參數,但犯規wotk

Alamofire.request(urlservice, method: .post, parameters: ["data": parameters], encoding: JSONEncoding.default, headers: nil).responseJSON { response in 

有什麼建議?

UPDATE 這裏是我的代碼

var arrayProducts = [[String: String]]() 

    let product: [String: String] = ["qty": self.txtQty.text!, "precio": self.productPrice, "product_id": self.productId] 

    arrayProducts.append(product) 

    let parameters = [ 
     "products": arrayProducts, 
     "address": self.userInfo["userAddress"]!, 
     "latitude": "6.157738", 
     "longitude": "-75.6144665", 
     "id": 1, 
     "name": self.userInfo["userName"]!, 
     "cellphone": self.userInfo["userPhone"]!, 
     "emei": "23456resdfty" 
     ] as [String : Any] 

Alamofire.request(urlservice, method: .post, parameters: ["data": parameters], encoding: JSONEncoding.default, headers: nil).responseJSON { response in 
+0

發佈您的代碼如何被你和你的陣列 – GIJOW

+0

CHEC設置你的'parameters' k這個答案https://stackoverflow.com/questions/44484772/how-to-post-nested-json-by-swiftyjson-and-alamofire/44500753#44500753 @EdisonMejia –

回答

0

下面是一個例子,你4,捲曲聲明它是做什麼的例子。請勾選綠色勾號,如果它適合你!這裏提到

註記號是一個共享的祕密,顯然是沒有的東西張貼到SO :)這裏打印報表的包包,讓你可以看到什麼回事/黃:)

func files_download(sourcePath: String) { 

    // curl -X POST https://content.dropboxapi.com/2/files/download 
    // --header "Authorization: Bearer ab-XXX" 
    // --header "Dropbox-API-Arg: {\"path\": \"/acme101/acme1/acme.png\"}" 


    var headers:HTTPHeaders! 
    let subPart: Dictionary = ["path":sourcePath] 
    do { 
     let data = try JSONSerialization.data(withJSONObject: subPart, options: []) 
     let dataString = String(data: data, encoding: .utf8) 
     headers = ["Authorization": "Bearer " + token, "Dropbox-API-Arg": dataString!] 
    } catch { 
     print("Oh fudge") 
    } 

    Alamofire.request("https://content.dropboxapi.com/2/files/download", method: .post, encoding: JSONEncoding.init(options: []), headers: headers).responseData(completionHandler: {feedback in 
     guard feedback.result.value != nil else { 
     print("Error: did not receive data", //rint("request \(request) feedback \(feedback)")) 
     return 
     } 
     guard feedback.result.error == nil else { 
      print("error calling POST on list_folder") 
      print(feedback.result.error) 
      return 
     } 

     if let JSON = feedback.result.value { 
      print("JSON: \(JSON)") 
      let dataString = String(data: JSON, encoding: .utf8) 
      print("JSON: \(JSON) \(String(describing: dataString))") 
     } 
     if let IMAGE = feedback.result.value { 
      print("downloaded \(sourcePath) \(sharedDataAccess.currentSN)") 
      sharedDataAccess.fnData(index2seek: sharedDataAccess.currentSN, fnData: feedback.result.value! as Data) 
      NotificationCenter.default.post(name: Notification.Name("previewPane"), object: nil, userInfo: nil) 
     } 
    }) 
} 
2

,當你有一個任何數據爲paremeter,你應該發送的URLRequest到Alamofire,它支持任何爲身體

var request = URLRequest(url: URL(string: url)!) 

    request.httpMethod = "POST" 
    request.setValue("application/json", forHTTPHeaderField: "Content-Type") 

    request.httpBody = try! JSONSerialization.data(withJSONObject: parameters, options: []) 

    Alamofire.request(request) 
     .responseString { (response) in 
      // to do anything 
    }