2017-04-02 2 views
1

Ich bin in Swift Projekt stecken. Ich rufe "SendPost" von Button IBAction und ich brauche es die Daten von Alamofire.request, aber ich weiß nicht, wie man das erreicht. Ich kann nicht auf "utf8Text" Variable von Alamofire.request bekommen. Wie komme ich zu den Daten?Swift - Holen Sie sich Daten von Alamofire POST Anfrage

Vielen Dank. :)

import Foundation 
import Alamofire 


    func SendPost(parameters: Parameters) -> String { 

    Alamofire.request("https://hovnocuc.com/main.php", method: .post, parameters: parameters).response { response in 
     print("Request: \(response.request)") 
     print("Response: \(response.response)") 
     print("Error: \(response.error)") 

     if let data = response.data, let utf8Text = String(data: data, encoding: .utf8) { 
      print("Data: \(utf8Text)") 

     } 
    } 

return "I don't know. :("; 
} 
+0

Sie haben eine falsche Endklammer an der if let-Linie. Entfernen Sie es und versuchen Sie es erneut – Blaze349

Antwort

0

mit dem folgenden Code Versuchen

func SendPost(parameters: Parameters) -> [String,AnyObject] { 

     let urlstring= "https://hovnocuc.com/main.php" 
     Alamofire.request(.POST, urlstring, parameters: parameters, encoding: .JSON).responseJSON { response in 

         if let JSON = response.result.value { 
          print("JSON: \(JSON)") 
          return JSON 
         } 
        } 
       return "I don't know " 
      } 
0

Für Swift 3

einen Abschluss Verwenden de Daten aus Anfrage erhalten zurückzukehren:

zunächst eine typealias schaffen, wird als Verschluss verwendet:

typealias SendPostCompletion = (_ data: String) -> Void

Dann:

@IBAction func yourAction(_ sender: UIButton) { 
     SendPost(parameters: ...) { (data) in 
      print(data) 
     } 
} 

func SendPost(parameters: Parameters, completion: @escaping SendPostCompletion) -> String { 

     Alamofire.request("https://hovnocuc.com/main.php", method: .post, parameters: parameters).response { response in 
      print("Request: \(response.request)") 
      print("Response: \(response.response)") 
      print("Error: \(response.error)") 

      if let data = response.data, let utf8Text = String(data: data, encoding: .utf8) { 
       var data = ("Data: \(utf8Text)") 
       completion(data) 
      } 
     } 

     completion("I don't know. :(") 
} 

Hoffe, dass es Ihnen hilft!

Verwandte Themen