2016-04-27 13 views
0

Ich mag wie unten JSON-Objekt mit .post Anfrage in swift 2.2 mit Alamofire für I-Code senden:Senden Sie eine POST-Anfrage mit JSON-Objekt in swift 2.2 Mit Alamofire 3.0+

let dictionary: [String: AnyObject] = [ 
      "cUserEmail" : "[email protected]", 
      "cUserPassword" : "abc", 
      "cDeviceId" : "asdf" 
     ] 

     let url = NSURL(string: endPoint) 

     let request = NSMutableURLRequest(URL:url!) 
     request.HTTPMethod = "POST" 
     request.setValue("application/json", forHTTPHeaderField: "Content-Type") 

     request.HTTPBody = try! NSJSONSerialization.dataWithJSONObject(dictionary, options: NSJSONWritingOptions.PrettyPrinted) 

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

Aber oben erwähnt Code ist funktioniert nicht. Zuvor in Objective-C verwendet i-Code wie folgt:

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; 
    manager.responseSerializer = [AFJSONResponseSerializer serializer]; 
    manager.requestSerializer = [AFJSONRequestSerializer serializer]; 
    [manager.requestSerializer setValue:@"application/json" forHTTPHeaderField:@"Content-Type"]; 
    manager.securityPolicy.allowInvalidCertificates = YES; 
[manager POST:URLString parameters:dictionary success:^(AFHTTPRequestOperation *operation, id responseObject) { 
} failure:^(AFHTTPRequestOperation *operation, NSError *error) { 
}]; 

Kurz i für mit Alamofire swift 2.2 entsprechendem Code soll.

Antwort

0

Versuchen leer Optionen für Körper zu verwenden, wie folgt aus:

request.HTTPBody = try! NSJSONSerialization.dataWithJSONObject(dictionary, options: []) 
+0

Ich habe versuchte das selbe aber hat nicht funktioniert. –

0

fand ich meine Lösung unter Methode, indem Sie
es Hoffnung für Sie arbeiten ...

let dictionary: [String: AnyObject] = [ 
      "cUserEmail" : "[email protected]", 
      "cUserPassword" : "abc", 
      "cDeviceId" : "asdf" 
     ] 

let request2 = Alamofire.request(.POST, "http://localhost:8080/api/v1/register", parameters: dictionary, encoding: .JSON) 
request2.validate() 
request2.responseJSON(completionHandler: { (let response) in 

    let data = response.data! 
    do { 
     let json = try NSJSONSerialization.JSONObjectWithData(data, options: .AllowFragments) 
     print ("json is \(json)") 

    } catch { 
     print("error serializing JSON: \(error)") 

     self.showAlert("Error :\(error)") 
    } 
})