Error de Dominio=NSCocoaErrorDomain Código=3840 «valor no Válido alrededor de carácter 0

Hola soy nuevo en swift y tengo problema, me hizo una petición al servidor con el método post y obtener una respuesta con buena Json, después de que me estoy haciendo otra petición con el método get, pero me sale este error.

De Error:
responseSerializationFailed(Alamofire.AFError.ResponseSerializationFailureReason.jsonSerializationFailed(Error de Dominio=NSCocoaErrorDomain Código=3840 «valor no Válido alrededor de carácter 0.» UserInfo={NSDebugDescription=valor no Válido alrededor de carácter 0.})

Parámetros de solicitud:

static func getInformationFromConfig(token: String, config: String, section : String, option: String) -> [String:Any] {

        let getInformationFromConfigparam: [String : Any] = ["jsonrpc": "2.0",
                                      "id": 1,
                                      "method": "call",
                                      "params": [ token, "uci", "get", [ "config": config, "section": section, "option": option]]
    ]

    return getInformationFromConfigparam
}



 public func device(token: String, loginCompletion: @escaping (Any) -> ()) {
    let deviceinfo = JsonRequests.getInformationFromConfig(token: token, config: "wireless", section: "@wifi-iface[0]", option: "mode")
    makeWebServiceCall(urlAddress: URL, requestMethod: .get, params: deviceinfo, completion: { (JSON : Any) in
        loginCompletion(JSON)
    })
}

Solicitud:

private func makeWebServiceCall (urlAddress: String, requestMethod: HTTPMethod, params:[String:Any], completion: @escaping (_ JSON : Any) -> ()) {


    Alamofire.request(urlAddress, method: requestMethod, parameters: params, encoding: JSONEncoding.default).responseJSON{ response in


        switch response.result {
        case .success(let value):

            let json = JSON(value)

            if let jsonData = response.result.value {

                completion(jsonData)
            }


        case .failure(let error):

                completion("Failure Response: \(error)")

ResponseString respuesta:

 [Request]: GET http://192.168.1.1/ubus
[Response]: <NSHTTPURLResponse: 0x60000003c4a0> { URL: http://192.168.1.1/ubus } { status code: 400, headers {
Connection = "Keep-Alive";
"Content-Type" = "text/html";
"Keep-Alive" = "timeout=20";
"Transfer-Encoding" = Identity;
} }
[Data]: 35 bytes
    [Result]: FAILURE:     responseSerializationFailed(Alamofire.AFError.ResponseSerializationFailureReason.jsonSerializationFailed(Error Domain=NSCocoaErrorDomain Code=3840 "Invalid value around character 0." UserInfo={NSDebugDescription=Invalid value around character 0.}))

3 Kommentare

  1. 4

    El Error de decir que la respuesta del servidor no es válido cadena JSON. Puedes intentar responseString en lugar de responseJSON como

    Alamofire.request(urlAddress, method: requestMethod, parameters: params).responseString{ response in
        debugPrint(response)
    }

    Ver el Xcode de salida del depurador & cambiar de acuerdo a su necesidad.

    • la URL de Respuesta es vacía. Eso significa que algo está mal con los parámetros a enviar con .el método get.
    • Me pareció que era una mala señal, pero ahora puedo solucionarlo y me da código de estado de error 400, actualizado respuesta de nuevo
  2. 0

    Tengo el mismo error y me fijo cuando he añadido codificación : JSONEncoding.defecto en la HTTPHeader. También podría ser que la respuesta del servidor no es válida JSON. Usted puede ponerse en contacto con el equipo del servidor y comprobar si la salida es de el formato correcto.

  3. -3

    El tamaño de la imagen es demasiado. El permitió que el tamaño de la memoria de 134,217,728 bytes se supera. Se trató de asignar 48,771,073 bytes en función de:

    imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any])

    Lugar de:

    image = info[UIImagePickerControllerOriginalImage] 

    Uso:

    image = info[UIImagePickerControllerEditedImage]
    • Se puede añadir algún formato a esta respuesta? También, la división en varias frases harán que esta respuesta más clara.

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea