xcode - httpbody - Solicitud HTTP en Swift con el método POST en swift3
urlrequest post parameters (2)
Supongo que eres totalmente novato, pero esto es algo que puedes probar en SWIFT 3 :
- Abra el archivo info.plist (haga doble clic O haga clic con el botón derecho> Abrir como> Código fuente)
Pegue este código antes de cerrar las etiquetas
</dict>
y</plist>
:<key>NSAppTransportSecurity</key> <dict> <key>NSExceptionDomains</key> <dict> <key>tranzporthub.com</key> <dict> <!--Include to allow subdomains--> <key>NSIncludesSubdomains</key> <true/> <!--Include to allow HTTP requests--> <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key> <true/> <!--Include to specify minimum TLS version--> <key>NSTemporaryExceptionMinimumTLSVersion</key> <string>TLSv1.1</string> </dict> </dict>
Ahora abra su controlador de vista y pegue este código donde desee realizar una solicitud posterior:
var request = URLRequest(url: URL(string: "http://test.tranzporthub.com/street45/customer_login.php")!) request.httpMethod = "POST" let postString = "[email protected]&password=123" request.httpBody = postString.data(using: .utf8) let task = URLSession.shared.dataTask(with: request) { data, response, error in guard let data = data, error == nil else { // check for fundamental networking error print("error=/(error)") return } if let httpStatus = response as? HTTPURLResponse, httpStatus.statusCode != 200 { // check for http errors print("statusCode should be 200, but is /(httpStatus.statusCode)") print("response = /(response)") } let responseString = String(data: data, encoding: .utf8) print("responseString = /(responseString)") } task.resume()
NOTA: ¡puede eliminar instrucciones de impresión si no las necesita!
¡Espero que esto ayude! :)
Estoy tratando de ejecutar una solicitud HTTP en Swift3, para enviar 2 parámetros a una URL.
Ejemplo:
Enlazar:
http://test.tranzporthub.com/street45/customer_login.php
Params:
{
"user_id":"[email protected]",
"password":"123"
}
¿Cuál es la forma más simple de hacer eso?
Ni siquiera quiero leer la respuesta. Solo quiero enviar eso para realizar cambios en mi base de datos a través de un archivo PHP.
@IBAction func postAction(_ sender: Any) {
let Url = String(format: "your url")
guard let serviceUrl = URL(string: Url) else { return }
// let loginParams = String(format: LOGIN_PARAMETERS1, "test", "Hi World")
let parameterDictionary = ["username" : "@kilo_laco", "tweet" : "Hi World"]
var request = URLRequest(url: serviceUrl)
request.httpMethod = "POST"
request.setValue("Application/json", forHTTPHeaderField: "Content-Type")
guard let httpBody = try? JSONSerialization.data(withJSONObject: parameterDictionary, options: []) else {
return
}
request.httpBody = httpBody
let session = URLSession.shared
session.dataTask(with: request) { (data, response, error) in
if let response = response {
print(response)
}
if let data = data {
do {
let json = try JSONSerialization.jsonObject(with: data, options: [])
print(json)
}catch {
print(error)
}
}
}.resume()
}