with ios post nsurlconnection swift

ios - with - swift 4 alamofire



Realizar solicitud POST en Swift (2)

Estoy tratando de hacer algo como esto:

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http://google.com"]]; request.HTTPMethod = @"POST"; NSString *stringData = @"some data"; NSData *requestBodyData = [stringData dataUsingEncoding:NSUTF8StringEncoding]; request.HTTPBody = requestBodyData; NSURLConnection *conn = [[NSURLConnection alloc] initWithRequest:request delegate:self];

Esto es lo que tengo hasta ahora:

var url = NSURL(string: "some url") var request = NSMutableURLRequest(URL: url) request.HTTPMethod = "POST" var dataString = "some data" var requestBodyData: NSData = dataString.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding) as NSData request.HTTPBody = requestBodyData var connection = NSURLConnection(request: request, delegate: self, startImmediately: false) println("sending request...") connection.start()

Sin embargo, la línea var requestBodyData: lanza la primera piedra con "No se puede convertir el tipo de expresión NSData al tipo NSData"

¿Alguien quiere pesar?


Usando Alamofire para enviar una solicitud HTTP POST

let request = NSMutableURLRequest(URL: NSURL(string: "https://www.google.com")!) request.HTTPMethod = "POST" let body = "email=/(email)&access_token=/(token)" request.HTTPBody = body.dataUsingEncoding(NSUTF8StringEncoding) Alamofire.request(request).responseJSON { response in NSLog("response.request: /(response.request)") // original URL request NSLog("esponse.response: /(response.response)") // URL response switch response.result { case .Success: NSLog("Validation Successful") case .Failure(let error): // Logout NSLog("/(error), /(String(data: response.data!, encoding: NSUTF8StringEncoding))") return } // Save sip account information to NSUserdefaults if let json = response.result.value as? [String: AnyObject]{ // Do your stuff } }


stringByAddingPercentEscapesUsingEncoding devuelve una cadena en lugar de un objeto NSData. De acuerdo con this respuesta, debe usar esto para convertir a una instancia de NSData:

let data = (anySwiftString as NSString).dataUsingEncoding(NSUTF8StringEncoding)