Saltar al contenido

Swift: cómo enviar una solicitud POST con el tipo de contenido “x-www-form-urlencoded”

Este equipo redactor ha estado largas horas buscando para dar respuesta a tu búsqueda, te compartimos la solución por eso nuestro deseo es que te sea de mucha ayuda.

Solución:

Espero que esté buscando este o nos dé más explicaciones en el código para que lo obtengamos fácilmente:

let headers = [
    "Content-Type": "application/x-www-form-urlencoded"
]
let parameters = [

]

Alamofire.request("urlString", method: .post, parameters: parameters, encoding:  URLEncoding.httpBody, headers: headers).responseJSON  (response:DataResponse) in

    switch(response.result) 
    case.success(let data):
        print("success",data)
    case.failure(let error):
        print("Not Success",error)
        self.view.makeToast(message: "Server Error!!")
    


Usé el siguiente código en Swift 4.2

guard let url = URL(string: "http://192.168.88.129:81/authenticate") else 
        return
    


    let user1 = username.text!
    let pass = passwordfield.text!
    print(user1)
    print(pass)
    let data : Data = "username=(user1)&password=(pass)&grant_type=password".data(using: .utf8)!
    var request : URLRequest = URLRequest(url: url)
    request.httpMethod = "POST"
    request.setValue("application/x-www-form-urlencoded", forHTTPHeaderField:"Content-Type");
    request.setValue(NSLocalizedString("lang", comment: ""), forHTTPHeaderField:"Accept-Language");
    request.httpBody = data

    print("one called")

    let config = URLSessionConfiguration.default
    let session = URLSession(configuration: config)
    // vs let session = URLSession.shared
      // make the request
    let task = session.dataTask(with: request, completionHandler: 
        (data, response, error) in

         if let error = error
        
            print(error)
        
         else if let response = response 
            print("her in resposne")

        else if let data = data
         
            print("here in data")
            print(data)
        

        DispatchQueue.main.async  // Correct

            guard let responseData = data else 
                print("Error: did not receive data")
                return
            

            let decoder = JSONDecoder()
            print(String(data: responseData, encoding: .utf8))
            do 
              //  let todo = try decoder.decode(T.self, from: responseData)
              //  NSAssertionHandler(.success(todo))
             catch 
                print("error trying to convert data to JSON")
                //print(error)
              //  NSAssertionHandler(.failure(error))
            
        
    )
    task.resume()


}

Reseñas y calificaciones del tutorial

Si aceptas, puedes dejar un artículo acerca de qué te ha gustado de este tutorial.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *