从JSON解析时出错

时间:2018-03-03 15:53:08

标签: json swift

  

错误域= NSCocoaErrorDomain代码= 3840"没有值。" UserInfo = {NSDebugDescription =无值。}

这是我的代码:

let correo = txtCorreo.text
let contrasena = txtContra.text

let postString = "correo=\(correo!)&contrasena=\(contrasena!)"
print(postString)

let url = URL(string: "http://localhost:8080/swiftdb/logear.php")!
var request = URLRequest(url: url)

request.httpMethod = "POST"//tipo de envio -> metodo post
request.httpBody = postString.data(using: .utf8)// concatenar mis variables con codificacion utf8

let task = URLSession.shared.dataTask(with: request) { data, response, error in
    guard let data = data else { //si existe un error se termina la funcion
        self.txtError.text = "error del servidor";

        print("solicitud fallida \(error)")//manejamos el error
        return //rompemos el bloque de codigo
    }

    do { //creamos nuestro objeto json
        print("recibimos respuesta")

        if let json = try JSONSerialization.jsonObject(with: data) as? [String: String] {
            DispatchQueue.main.async {//proceso principal
                let mensaje = json["mensaje"]//constante

                let error = Int(json["error"]!)//constante
                print(error!)

                if(error == 1){//todo correcto
                    let sb : UIStoryboard = UIStoryboard(name: "Main",bundle:nil)
                    let nv = sb.instantiateViewController(withIdentifier: "OP") as! OpcionesController
                }else if(error == 2){//datos denegados
                }else if(error == 3){//no existe
                }

                self.txtError.text = mensaje;
            }
        }
    } catch let parseError {//manejamos el error
        print("error al parsear: \(parseError)")
        self.txtError.text = "error del servidor (json)";

        let responseString = String(data: data, encoding: .utf8)
        print("respuesta : \(responseString)")
    }
}
task.resume()

我尝试添加选项.allowfragments,但它仍然无效。我还检查了我的PHP从Swift项目发送到PHP文件的内容是什么,数据是正确的。

0 个答案:

没有答案