System.err: org.json.JSONException: 类型 java.lang.String 的值连接无法转换为 JSONObject W/System.err

如何解决System.err: org.json.JSONException: 类型 java.lang.String 的值连接无法转换为 JSONObject W/System.err

我正在 android studio 中使用 volley、PHPMysqL 开发登录

我遇到的问题是,当我注册一个用户时,应用程序会为我注册它,但同时它会抛出一个错误吐司并且不会更改活动,它会停留在注册活动中,并且进度对话框会四处走动没有别的。

我已经查看了我的代码,但无法确定我的问题,如果您能支持我,我将不胜感激。

为了安全,我审查了我的 IP。

这是 logcat 告诉我的:

E/anyText: Connection Success{"success":"3","message":"user Already exist"}
W/System.err: org.json.JSONException: Value Connection of type java.lang.String cannot be converted to JSONObject
W/System.err:     at org.json.JSON.typeMismatch(JSON.java:112)
        at org.json.JSONObject.<init>(JSONObject.java:163)
        at org.json.JSONObject.<init>(JSONObject.java:176)
        at com.murdockv.xoloscar.Registeractivity$2.onResponse(Registeractivity.java:85)
        at com.murdockv.xoloscar.Registeractivity$2.onResponse(Registeractivity.java:79)
W/System.err:     at com.android.volley.toolBox.StringRequest.deliverResponse(StringRequest.java:82)
        at com.android.volley.toolBox.StringRequest.deliverResponse(StringRequest.java:29)
        at com.android.volley.ExecutorDelivery$ResponseDeliveryRunnable.run(ExecutorDelivery.java:102)
        at android.os.Handler.handleCallback(Handler.java:907)
        at android.os.Handler.dispatchMessage(Handler.java:105)
        at android.os.Looper.loop(Looper.java:216)
        at android.app.ActivityThread.main(ActivityThread.java:7625)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:524)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:987)
D/Openglrenderer:   hwui Binary is  enabled
D/mali_winsys: EGLint new_window_surface(egl_winsys_display *,void *,EGLSurface,EGLConfig,egl_winsys_surface **,EGLBoolean) returns 0x3000
D/Openglrenderer:   hwui Binary is  enabled
W/libEGL: EGLNativeWindowType 0x7295e8f010 disconnect Failed

这是我的注册活动:

import androidx.appcompat.app.AppCompatActivity;

import android.app.ProgressDialog;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolBox.StringRequest;
import com.android.volley.toolBox.Volley;
import com.google.android.material.textfield.TextInputEditText;

import org.json.JSONObject;

import java.util.HashMap;
import java.util.Map;

public class Registeractivity extends AppCompatActivity {

    TextInputEditText correo,password,nombre,ap,am,telefono,referencia;
    Button rregister;
    String scorreo,spassword,snombre,sap,sam,stelefono,sreferencia;
    ProgressDialog pdDialog;
    String URL_REGISTER = "http://***.***.*.**/autos/registration.PHP";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_register);

        correo=(TextInputEditText)findViewById(R.id.input_correo);
        password=(TextInputEditText)findViewById(R.id.input_contraseña);
        nombre=(TextInputEditText)findViewById(R.id.input_nombre);
        ap=(TextInputEditText)findViewById(R.id.input_AP);
        am=(TextInputEditText)findViewById(R.id.input_AM);
        telefono=(TextInputEditText)findViewById(R.id.input_telefono);
        referencia=(TextInputEditText)findViewById(R.id.input_referencia);
        rregister=(Button) findViewById(R.id.btn_registro);

        pdDialog= new ProgressDialog(Registeractivity.this);
        pdDialog.setTitle("Registering please wait...");
        pdDialog.setCancelable(false);


        rregister.setonClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                scorreo=correo.getText().toString().trim();
                spassword=password.getText().toString().trim();
                snombre=nombre.getText().toString().trim();
                sap=ap.getText().toString().trim();
                sam=am.getText().toString().trim();
                stelefono=telefono.getText().toString().trim();
                sreferencia=referencia.getText().toString().trim();

                if(scorreo.isEmpty()||spassword.isEmpty()||snombre.isEmpty()||sap.isEmpty()||sam.isEmpty()||stelefono.isEmpty()||sreferencia.isEmpty())
                {
                    Toast.makeText(Registeractivity.this,"please enter valid data",Toast.LENGTH_SHORT).show();
                }
                else{
                    Register();
                }
            }
        });
    }

    private void Register()
    {
        pdDialog.show();
        StringRequest stringRequest = new StringRequest(Request.Method.POST,URL_REGISTER,new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {

                        Log.e("anyText",response);
                        try{
                            JSONObject jsonObject = new JSONObject(response);
                            String success = jsonObject.getString("success");
                            String message = jsonObject.getString("message");

                            if(success.equals("1")){
                                Toast.makeText(getApplicationContext(),"Registration Success",Toast.LENGTH_LONG).show();
                                pdDialog.dismiss();

                                Intent login = new Intent(Registeractivity.this,LoginActivity.class);
                                startActivity(login);
                                finish();

                            }
                            if(success.equals("0")){
                                Toast.makeText(getApplicationContext(),message,Toast.LENGTH_LONG).show();
                                pdDialog.dismiss();
                            }
                            if(success.equals("3")){
                                Toast.makeText(getApplicationContext(),Toast.LENGTH_LONG).show();
                                pdDialog.dismiss();
                            }

                        } catch (Exception e) {
                            e.printstacktrace();
                            Toast.makeText(getApplicationContext(),"Registration Error !1"+e,Toast.LENGTH_LONG).show();
                        }
                    }
                },new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                pdDialog.dismiss();
                Toast.makeText(getApplicationContext(),"Registration Error !2"+error,Toast.LENGTH_LONG).show();
            }
        })
        {
            @Override
            protected Map<String,String> getParams() {
                Map<String,String> params = new HashMap<>();

                params.put("correo",scorreo);
                params.put("password",spassword);
                params.put("nombre",snombre);
                params.put("ap",sap);
                params.put("am",sam);
                params.put("telefono",stelefono);
                params.put("referencia",sreferencia);
                return params;
            }
        };

        RequestQueue requestQueue = Volley.newRequestQueue(this);
        requestQueue.add(stringRequest);
    }
}

这是我的PHP代码

<?PHP

    $correo = $_POST["correo"];
    $password = $_POST["password"];
    $nombre = $_POST["nombre"];
    $ap= $_POST["ap"];
    $am= $_POST["am"];
    $telefono= $_POST["telefono"];
    $referencia= $_POST["referencia"];

    require_once 'connect.PHP';

$findexist="SELECT * FROM clientes WHERE correo='$correo'";

        $resultsearch=MysqLi_query($conn,$findexist);
        if(MysqLi_num_rows($resultsearch)>0)
        {
           while($row=MysqLi_fetch_array($resultsearch))
          {
              $result["success"] = "3";
              $result["message"] = "user Already exist";

              echo json_encode($result);
              MysqLi_close($conn);
          }
    }
else{

    $sql = "INSERT INTO clientes (correo,referencia) VALUES ('$correo','$password','$nombre','$ap','$am','$telefono','$referencia');";

    if ( MysqLi_query($conn,$sql) ) {
        $result["success"] = "1";
        $result["message"] = "Registration success";

        echo json_encode($result);
        MysqLi_close($conn);

    } else {
        $result["success"] = "0";
        $result["message"] = "error in Registration";
        echo json_encode($result);
        MysqLi_close($conn);
    }
}

?>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?