Stack Overflow en español Asked on November 18, 2021
estoy realizando una petición POST con envío de parámetros utilizando URLSession.shared.dataTask a un servidor PHP. He encontrado varios códigos que hacen solicitud pero este es el único con el que he podido recibir los parámetros en el servidor, pero tengo problemas con la estructura del REQUEST cuando lo recibo en el servidor PHP.
Tengo el siguiente código en swift 5, Xcode 11.5
receiptString es el nombre del parametro String a enviar por POST con un valor largo codificado:
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
Lo envío de la siguiente forma
let todosEndpoint: String = "http://192.168.0.59:8888/proyecto/receipt-validation.php"
guard let todosURL = URL(string: todosEndpoint) else {
print("===== Error: No se puede crear la URL")
return
}
var request = URLRequest(url: todosURL)
request.httpMethod = "POST" //Metodo
let param: [String: Any] = ["parametro": receiptString] //Parametros
let jsonTodo: Data
do {
jsonTodo = try JSONSerialization.data(withJSONObject: param, options: [])
request.httpBody = jsonTodo
} catch {
print("===== Error: No se pudo crear el JSON para enviar al servidor")
return
}
let task = URLSession.shared.dataTask(with: request) { (data, response, error) in
guard error == nil else {
print("error calling POST")
print(error!)
return
}
guard let responseData = data else {
print("===== Error: No se recibieron datos desde el servidor")
return
}
//Parse the result as JSON, since that's what the API provides
do {
guard let receivedTodo = try JSONSerialization.jsonObject(with: responseData, options: []) as? [String: Any] else {
print("===== No se pudo obtener JSON de responseData como diccionario")
return
}
print("=====JSON recibido desde el servidor es: " + receivedTodo.description)
guard let todoID = receivedTodo["receipt_is_valid"] as? String else {
print("===== No se pudo obtener dato receipt_is_valid como String de JSON")
return
}
print("===== Valor de receipt_is_valid es: (todoID)")
} catch {
print("===== Error al analizar responseData de POST en receivedTodo")
return
}
}
task.resume()
Al imprimir el array del REQUEST cuando lo recibo en el servidor PHP tiene la siguiente estructura. (El valor lo remplazare por algo mas corto)
[15-Jul-2020 03:41:20 UTC] ===== LLEGAMOS A SERVIDOR, REQUEST RECIBIDO: Array
(
[{"parametro":"MIIkbgYJKoZIhvcNAQcCoIIkXzCCJFsCAQExCzAJBgUrDgMCGgUAMII"}] =>
)
Por lo que cuando intento aplicar un json_decode($_REQUEST); me arroja el siguiente Warning PHP sin obtener el dato.
$param = json_decode($_REQUEST);
[15-Jul-2020 03:41:20 UTC] PHP Warning: json_decode() expects parameter 1 to be string, array given in /Users/asdf/Documents/WorkSpacePhp/proyecto/receipt-validation.php on line 17
Como seria la forma de enviar correctamente el parametro desde swift ?
o
Si esta correctamente enviado como obtengo el valor del parametro si lo recibo con esta estructura en PHP ?
O si conocen alguna otra manera de enviar el parametro por POST que no sea por JSON igual me sirve… intente enviarlo por GET pero no se pudo por que es demasiado largo el dato.
Agradezco su ayuda.
Saludos.
Puedes intentar agregando el siguiente header a tu URLRequest
:
request.addValue("application/json; charset=UTF-8", forHTTPHeaderField: "Content-Type")
Answered by desaroger on November 18, 2021
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP