我在php whit ios的webservice中有错误

时间:2018-03-02 23:08:10

标签: ios json swift

我有这个错误:

  

可选(“< html>< body> 408请求超时< / h1> \ n您的浏览器未及时发送完整请求。\ n< / body>< / html> \ n “)

和此:

  

Error Domain = NSCocoaErrorDomain Code = 3840“JSON文本没有以数组或对象开头,并且选项允许未设置片段。” UserInfo = {NSDebugDescription = JSON文本不以数组或对象开头,并且选项允许未设置片段。}

这是我的代码:

print("envar solicitud")

let url = URL(string: "http://dev.viupruebas.com.mx/webservice/service/prueba")!

var request = URLRequest(url: url)
request.setValue("application/x-www-form-urlencoded", forHTTPHeaderField: "Content-Type");
request.httpMethod = "GET"
let postString = "usuario=empleadodemo&password=1234"
request.httpBody = postString.data(using: .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
        print("solicitud fallida \(error)")//manejamos el error
        return //rompemos el bloque de codigo
    }

    do {//creamos nuestro objeto json

        print("recibimos respuesta")

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


        if let json = try JSONSerialization.jsonObject(with: data) as? [String: String] {
            print ("**respuesta = \(data)")
            DispatchQueue.main.async {//proceso principal
               let nombre = json["username"]//constante
                let telefono = json["telefono"]//variable
              //  var pais = json["pais"]
               // self.nombreLabel.text = nombre//ponemos el texto en los textfield
              //  self.edadLabel.text = edad
                //self.paisLabel.text = pais
            }


        }


    } catch let parseError {//manejamos el error
        print("error al parsear: \(parseError)")
        let responseString = String(data: data, encoding: .utf8)
        print("respuesta : \(responseString)")
    }
}
task.resume()

1 个答案:

答案 0 :(得分:1)

我复制了你的代码。进行了1次更改:将GET更改为POST。这就是我现在收到的答案:

**respuesta = ["pais": "Mexico Veracruz", "nombre": "Martin Flores", "edad": "30"]

JSON没问题。这意味着它没有错误地进行反序列化。

一般建议:确保正确遵循后端文档。因为只需遵循API文档就可以避免这种错误。希望它有所帮助。