2017-09-20 1 views
-1

enter image description hereenter image description here Entrez la description de l'image iciJ'utilise Alamofire. Je suis coincé dans la publication de la demande de poste. J'ai un corps de poste qui est -ios swift 3 Message de demande Alamfire

[ 
    { 
    "siteName": "lab1", 
    "locationCode": "111", 
    "locationName": "test1" 
    } 
] 

Comment dois-je faire appel à la demande? Je fais -

let parameters: Parameters = [ 
     "siteName": "lab", 
     "locationCode": "1156", 
     "locationName": "123test" 
    ] 
    Alamofire.request(URLStr, method: .post, parameters: parameters , encoding: JSONEncoding.default, headers: headers).responseJSON { response in 
     print("Request: \(String(describing: response.request))") // original url request 
     print("Response: \(String(describing: response.response))") // http url response 
     print("Result: \(response.result)")       // response serialization result 

     if let json = response.result.value { 
      print("JSON: \(json)") // serialized json response 
      sucessHandler(json) 
     } 

     if let data = response.data, let utf8Text = String(data: data, encoding: .utf8) { 
      print("Data: \(utf8Text)") // original server data as UTF8 string 
      failureHandler(response.error) 
     } 
    } 
+1

Qu'est-ce problème? –

+1

Dans votre code, il y a une faute de frappe 'paramètres: params' devrait être' parameters: parameters' dans 'Alamofire.request' –

+0

Quel est le code d'état que vous obtenez? vous pouvez l'imprimer en utilisant 'response.response? .statusCode' – Honey

Répondre

0

Ci-dessous le code fonctionne pour moi

let parameters: Parameters = ["feedback_name": "SwiftTest","feedback_email":"[email protected]","feedback_description":"Test"] 

     Alamofire.request("http://212.69.45.77:8082/api/feedbackapp",method: .post,parameters: parameters).responseJSON { response in 
      print("Request: \(String(describing: response.request))") // original url request 
      print("Response: \(String(describing: response.response))") // http url response 
      print("Result: \(response.result)")       // response serialization result 

      if let json = response.result.value { 
       print("JSON: \(json)") // serialized json response 
      } 

      if let data = response.data, let utf8Text = String(data: data, encoding: .utf8) { 
       print("Data: \(utf8Text)") // original server data as UTF8 string 
      } 
     } 
1

Merci beaucoup les gars. J'ai trouvé l'autre façon de faire ça.

laisser fileURL = NSURL (string: URLStr)

var request = URLRequest(url:fileUrl as! URL) 
    request.httpMethod = "POST" 
    request.setValue("application/json", forHTTPHeaderField: "Content-Type") 

    let values = [parameters] 

    request.httpBody = try! JSONSerialization.data(withJSONObject: values) 

    Alamofire.request(request) 
     .responseJSON { response in 
      // do whatever you want here 
      switch response.result { 
      case .failure(let error): 
       print(error) 

       if let data = response.data, let responseString = String(data: data, encoding: .utf8) { 
        print(responseString) 
        failureHandler(response.error) 

       } 
      case .success(let responseObject): 
       print(responseObject) 
       do { 
        let user = try IeroLocationSave(JSONDecoder(response.data ?? "nil..12")) 
        //print("city is: \(user.address.city)") 
        sucessHandler(user) 
        //That's it! The object has all the appropriate properties mapped. 
       } catch { 
        print("unable to parse the JSON") 
       } 

      } 
    }