当前位置: 首页 > 知识库问答 >
问题:

错误域=NSCocoaErrorDomain Code=3840 JSONObject

淳于慎之
2023-03-14

我正在尝试使用xcode中的Switf 4使用rest Web服务,这是我的代码:

func login_crm(user:String, passwd:String) {


    let url = URL(string: "https://intranet.jytcolombia.com/ws/ws_ios/iosws_login.php?par1=\(user)&par2=\(passwd)")
    let request = URLRequest(url: url!)
    let task = URLSession.shared.dataTask(with: request){data, response, error in
        guard let data = data else{
            print("Linea 33 \(error)")
            return
        }
        do{
            print("Recibimos respuesta")
            if let json = try JSONSerialization.jsonObject(with: data, options: .allowFragments) as? [String: String] {
                DispatchQueue.main.async {
                    let result = json["login"]

                    if(result == "true"){

                        let result = json["login"]

                        if(result == "true"){



                        } else {
                            let alert = UIAlertController(title: "Inicio de Sesion", message: "Usuario o contraseña invalidos", preferredStyle: .alert)
                            alert.addAction(UIAlertAction(title: "OK", style: .default))
                            self.present(alert, animated: true, completion: nil)
                        }

                    } else {
                        let alert = UIAlertController(title: "Inicio de Sesion", message: "Usuario o contraseña invalidos", preferredStyle: .alert)
                        alert.addAction(UIAlertAction(title: "OK", style: .default))
                        self.present(alert, animated: true, completion: nil)
                    }

                }
            }

        }catch let parseError{
            print("Linea 50: \(parseError)")
            let responseString = String(data: data, encoding: .utf8)
            print("Linea 52: \(responseString)")
        }
    }
    task.resume()



}

这是我在xcode控制台中的回答:

Linea 50:Error Domain=NSCocoaErrorDomain Code=3840“字符0周围的值无效。”UserInfo={NSDebugDescription=字符0周围无效的值。}Linea 52:可选(“|{\”login\“:\”true\“}”)

这是我的代码web服务:

|<?php
    header("Content-type: application/json; charset=utf-8");


$response = array();

if($_SERVER['REQUEST_METHOD'] == 'GET'){
    $user = $_GET['par1'];
    $passwd = sha1($_GET['par2']);

    $consulta = "SELECT * FROM USUARIOS WHERE USUARIOS.usuarios_nombreusuario = '$user' AND USUARIOS.usuarios_password = '$passwd' LIMIT 1";
    $proceso = mysqli_query($conexioni, $consulta) or die(mysqli_error($conexioni)); 
    $cols = mysqli_num_rows($proceso);

    if($cols == 0){
        $response['login'] = "false";
    } else{
        $response['login'] = "true";
    }

    echo json_encode($response);
}
?>

共有1个答案

满昊然
2023-03-14

我可以看到您的响应字符串包含|字符:

"|{\"login\":\"true\"}"

这导致了json解析问题。请检查服务器代码。

 类似资料:
  • 这是我第一次使用Grails,我定义了以下域类 但当我尝试运行应用程序或为这些域生成任何控制器时,它显示了这个错误 我找不到问题,在此之前,控制台向我展示了这样的东西,它无法创建表“产品”和“类别” 编辑 我只是简单地解决了将“HasMany”改为“HasMany”的问题。但现在我不知道为什么控制台会显示这个

  • 试图找出我出错的原因。我的数字介于-1和1之间,但仍然有错误。 数学域错误 有什么想法吗? 谢谢

  • 问题内容: 我只是从“ 使用Python进行工程中的数值方法”中 测试一个示例。 当我运行它时,它显示以下错误: 我将其范围缩小到了日志,因为当我删除日志并添加其他功能时,它可以工作。我认为这是由于对底座的某种干扰,我不知道怎么做。谁能提出解决方案? 问题答案: 您的代码执行的a小于或等于零。从数学上来说这是未定义的,因此Python的函数会引发异常。这是一个例子: 不知道函数的作用,我不确定是否

  • 问题内容: 我正在尝试使用.get方法使用Alamofire调用服务。该请求没有什么特别的,没有任何参数,只是一个Authorization标头。 我在这里有点生气,因为当我在具有相同URL和授权令牌的邮递员上运行请求时,请求工作正常,但是当我使用Alamofire运行应用程序代码时,它将返回此错误: 错误域= NSPOSIXErrorDomain代码= 100“协议错误” UserInfo =

  • 我是谷歌应用程序帐户用户。当我尝试访问谷歌加域API时,我收到此错误。“不允许访问谷歌域名API,因为用户已同意不兼容的范围”。我请求的范围是:“https://www.googleapis.com/auth/plus.circles.read,https://www.googleapis.com/auth/plus.circles.write,https://www.googleapis.com

  • 描述 (Description) 如上所述,C库宏EDOM表示域错误,如果输入参数在域外,则会发生域错误,在该域上定义数学函数并将errno设置为EDOM。 声明 (Declaration) 以下是EDOM Macro的声明。 #define EDOM some_value 参数 (Parameters) NA 返回值 (Return Value) NA 例子 (Example) 以下示例显示了