Android的凌空库登录响应JSON异常 [英] Android volley library login response json exception

查看:240
本文介绍了Android的凌空库登录响应JSON异常的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在这里输入的形象描述 我有一个登录page.On pressing登录按钮由用户输入的凭据是通过Android的凌空串请求发送到服务器。服务器脚本检查凭据,凭据是否错了,它在响应发送错误消息。我对着错误:

 登录Response{错误:真的,ERROR_MSG:!登录凭证错误,请重试}
03-01 15:09:03.709 3625-3625 / com.cc.envoycc W / System.err的:org.json.JSONException:java.lang.String类型的值i»¿不能转换到的JSONObject
03-01 15:09:03.729 3625-3625 / com.cc.envoycc W / System.err的:在org.json.JSON.typeMismatch(JSON.java:111)
03-01 15:09:03.729 3625-3625 / com.cc.envoycc W / System.err的:在org.json.JSONObject&下;初始化>(JSONObject.java:158)
03-01 15:09:03.729 3625-3625 / com.cc.envoycc W / System.err的:在org.json.JSONObject&下;初始化>(JSONObject.java:171)
03-01 15:09:03.729 3625-3625 / com.cc.envoycc W / System.err的:在com.cc.envoycc.activity.LoginActivity $ 3.onResponse(LoginActivity.java:103)
03-01 15:09:03.729 3625-3625 / com.cc.envoycc W / System.err的:在com.cc.envoycc.activity.LoginActivity $ 3.onResponse(LoginActivity.java:96)
03-01 15:09:03.729 3625-3625 / com.cc.envoycc W / System.err的:在com.android.volley.toolbox.StringRequest.deliverResponse(StringRequest.java:60)
03-01 15:09:03.729 3625-3625 / com.cc.envoycc W / System.err的:在com.android.volley.toolbox.StringRequest.deliverResponse(StringRequest.java:30)
03-01 15:09:03.729 3625-3625 / com.cc.envoycc W / System.err的:在com.android.volley.ExecutorDelivery $ ResponseDeliveryRunnable.run(ExecutorDelivery.java:99)
03-01 15:09:03.729 3625-3625 / com.cc.envoycc W / System.err的:在android.os.Handler.handleCallback(Handler.java:615)
03-01 15:09:03.729 3625-3625 / com.cc.envoycc W / System.err的:在android.os.Handler.dispatchMessage(Handler.java:92)
03-01 15:09:03.729 3625-3625 / com.cc.envoycc W / System.err的:在android.os.Looper.loop(Looper.java:137)
03-01 15:09:03.729 3625-3625 / com.cc.envoycc W / System.err的:在android.app.ActivityThread.main(ActivityThread.java:4960)
03-01 15:09:03.729 3625-3625 / com.cc.envoycc W / System.err的:在java.lang.reflect.Method.invokeNative(本机方法)
03-01 15:09:03.739 3625-3625 / com.cc.envoycc W / System.err的:在java.lang.reflect.Method.invoke(Method.java:511)
03-01 15:09:03.739 3625-3625 / com.cc.envoycc W / System.err的:在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:1038)
03-01 15:09:03.739 3625-3625 / com.cc.envoycc W / System.err的:在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:805)
03-01 15:09:03.739 3625-3625 / com.cc.envoycc W / System.err的:在dalvik.system.NativeStart.main(本机方法)

我不知道是什么错误是怎么引起的,如何纠正it.Please帮助!

我的PHP code

 < PHPmb_internal_encoding(UTF-8);
require_once'DB_Functions.php';
$ DB =新DB_Functions();// JSON响应数组
$响应=阵列(错误=> FALSE);如果(使用isset($ _ POST [电子邮件])及和放大器;使用isset($ _ POST ['密码'])){    //接收后PARAMS
    $电子邮件= $ _ POST [电子邮件];
    $密码= $ _ POST ['密码'];    //通过电子邮件和密码,获取用户
    $ USER = $ DB-GT&; getUserByEmailAndPassword($电子邮件,$密码);    如果($用户!= FALSE){
        //使用被发现
        $响应[错误] = FALSE;
        $响应[UID] = $用户[UNIQUE_ID];
        $响应[用户] [名称] = $用户[名];
        $响应[用户] [电子邮件] = $用户[电子邮件];
        $响应[用户] [created_at] = $用户[created_at];
        $响应[用户] [的updated_at] = $用户[的updated_at];
        回声json_en code($响应);
    }其他{
        //用户没有使用凭据找到
        $响应[错误] = TRUE;
        $响应[ERROR_MSG] =​​登录凭据错误,请重试!
        回声json_en code($响应);
    }
}其他{
    //要求后params为失踪
    $响应[错误] = TRUE;
    $响应[ERROR_MSG] =​​所需参数的电子邮件或密码丢失!
    回声json_en code($响应);
}
?>


解决方案

这显然由服务器部分原因。响应不正确。
它的JSON code前有我»¿。必须有发生在php code一些错误。

I have a login page.On pressing the login button the credentials entered by the user are sent to server through android volley string request. The server script checks the credentials and if the credentials are wrong it sends an error message in the response. I am facing the error :

Login Response{"error":true,"error_msg":"Login credentials are wrong. Please try again!"}
03-01 15:09:03.709 3625-3625/com.cc.envoycc W/System.err: org.json.JSONException: Value  of type java.lang.String cannot be converted to JSONObject
03-01 15:09:03.729 3625-3625/com.cc.envoycc W/System.err:     at org.json.JSON.typeMismatch(JSON.java:111)
03-01 15:09:03.729 3625-3625/com.cc.envoycc W/System.err:     at org.json.JSONObject.<init>(JSONObject.java:158)
03-01 15:09:03.729 3625-3625/com.cc.envoycc W/System.err:     at org.json.JSONObject.<init>(JSONObject.java:171)
03-01 15:09:03.729 3625-3625/com.cc.envoycc W/System.err:     at com.cc.envoycc.activity.LoginActivity$3.onResponse(LoginActivity.java:103)
03-01 15:09:03.729 3625-3625/com.cc.envoycc W/System.err:     at com.cc.envoycc.activity.LoginActivity$3.onResponse(LoginActivity.java:96)
03-01 15:09:03.729 3625-3625/com.cc.envoycc W/System.err:     at com.android.volley.toolbox.StringRequest.deliverResponse(StringRequest.java:60)
03-01 15:09:03.729 3625-3625/com.cc.envoycc W/System.err:     at com.android.volley.toolbox.StringRequest.deliverResponse(StringRequest.java:30)
03-01 15:09:03.729 3625-3625/com.cc.envoycc W/System.err:     at com.android.volley.ExecutorDelivery$ResponseDeliveryRunnable.run(ExecutorDelivery.java:99)
03-01 15:09:03.729 3625-3625/com.cc.envoycc W/System.err:     at android.os.Handler.handleCallback(Handler.java:615)
03-01 15:09:03.729 3625-3625/com.cc.envoycc W/System.err:     at android.os.Handler.dispatchMessage(Handler.java:92)
03-01 15:09:03.729 3625-3625/com.cc.envoycc W/System.err:     at android.os.Looper.loop(Looper.java:137)
03-01 15:09:03.729 3625-3625/com.cc.envoycc W/System.err:     at android.app.ActivityThread.main(ActivityThread.java:4960)
03-01 15:09:03.729 3625-3625/com.cc.envoycc W/System.err:     at java.lang.reflect.Method.invokeNative(Native Method)
03-01 15:09:03.739 3625-3625/com.cc.envoycc W/System.err:     at java.lang.reflect.Method.invoke(Method.java:511)
03-01 15:09:03.739 3625-3625/com.cc.envoycc W/System.err:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1038)
03-01 15:09:03.739 3625-3625/com.cc.envoycc W/System.err:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:805)
03-01 15:09:03.739 3625-3625/com.cc.envoycc W/System.err:     at dalvik.system.NativeStart.main(Native Method)

I don't know what the error is caused by and how to correct it.Please help!

My php code

<?php

mb_internal_encoding('UTF-8');
require_once 'DB_Functions.php';
$db = new DB_Functions();

// json response array
$response = array("error" => FALSE);

if (isset($_POST['email']) && isset($_POST['password'])) {

    // receiving the post params
    $email = $_POST['email'];
    $password = $_POST['password'];

    // get the user by email and password
    $user = $db->getUserByEmailAndPassword($email, $password);

    if ($user != false) {
        // use is found
        $response["error"] = FALSE;
        $response["uid"] = $user["unique_id"];
        $response["user"]["name"] = $user["name"];
        $response["user"]["email"] = $user["email"];
        $response["user"]["created_at"] = $user["created_at"];
        $response["user"]["updated_at"] = $user["updated_at"];
        echo json_encode($response);
    } else {
        // user is not found with the credentials
        $response["error"] = TRUE;
        $response["error_msg"] = "Login credentials are wrong. Please try again!";
        echo json_encode($response);
    }
} else {
    // required post params is missing
    $response["error"] = TRUE;
    $response["error_msg"] = "Required parameters email or password is missing!";
    echo json_encode($response);
}
?>

解决方案

It obviously caused by server part. The response is not correct. It has '' before the json code. There must be some error occur in php code.

这篇关于Android的凌空库登录响应JSON异常的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆