如何解决org.json.JSONException:Value<;!无法将java.lang.String类型的DOCTYPE转换为JSONObject

如何解决org.json.JSONException:Value<;!无法将java.lang.String类型的DOCTYPE转换为JSONObject,java,php,android,json,Java,Php,Android,Json,我目前正在开发一个注册登录应用程序。我面临着这个问题,我找不到任何解决问题的办法。有人对此有什么解决办法吗?非常感谢您的帮助 RegisterActivity.java public class RegisterActivity extends AppCompatActivity { AlertDialog.Builder builder; @Override protected void onCreate(Bundle savedInstanceState) { super.onCr

我目前正在开发一个注册登录应用程序。我面临着这个问题,我找不到任何解决问题的办法。有人对此有什么解决办法吗?非常感谢您的帮助

RegisterActivity.java

public class RegisterActivity extends AppCompatActivity {
AlertDialog.Builder builder;

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

    builder = new AlertDialog.Builder(RegisterActivity.this);
    final EditText etName = (EditText) findViewById(R.id.etName);
    final EditText etUserName = (EditText) findViewById(R.id.etUserName);
    final EditText etPassword = (EditText) findViewById(R.id.etPassword);
    final EditText etAge = (EditText) findViewById(R.id.etAge);
    final EditText etEmail = (EditText) findViewById(R.id.etEmail);
    final Button bRegister = (Button) findViewById(R.id.bRegister);

    bRegister.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            final String name = etName.getText().toString();
            final String username = etUserName.getText().toString();
            final String password = etPassword.getText().toString();
            final int age = Integer.parseInt(etAge.getText().toString());
            final String email = etEmail.getText().toString();

            if (name.equals("") || username.equals("") || password.equals("") || age == 0 || email.equals("")) {
                builder.setTitle("Something Went Wrong");
                builder.setMessage("Please fill in all the fileds").setPositiveButton("OK", null).create().show();

            } else {

                Response.Listener<String> responseListener = new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {

                        try {
                            JSONObject jsonResponse = new JSONObject(response);
                            boolean success = jsonResponse.getBoolean("success");

                            if (success) {
                                Intent intent = new Intent(RegisterActivity.this, LoginActivity.class);
                                RegisterActivity.this.startActivity(intent);
                            } else {
                                builder = new AlertDialog.Builder(RegisterActivity.this);
                                builder.setMessage("Registration Failed").setNegativeButton("Retry", null).create().show();

                            }
                        } catch (JSONException e) {
                            e.printStackTrace();
                        }
                    }


                };
                RegisterRequest registerRequest = new RegisterRequest(name, username, password, age, email, responseListener);
                RequestQueue queue = Volley.newRequestQueue(RegisterActivity.this);
                queue.add(registerRequest);


            }
        }

    });
}
公共类注册表活动扩展了AppCompatActivity{
AlertDialog.Builder;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u寄存器);
builder=新建AlertDialog.builder(RegisterActivity.this);
最终EditText etName=(EditText)findViewById(R.id.etName);
最终EditText etUserName=(EditText)findViewById(R.id.etUserName);
最终EditText etPassword=(EditText)findViewById(R.id.etPassword);
最终EditText etAge=(EditText)findViewById(R.id.etAge);
最终的EditText-etEmail=(EditText)findViewById(R.id.etEmail);
最终按钮b注册表=(按钮)findViewById(R.id.b注册表);
bRegister.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
最终字符串名称=etName.getText().toString();
最终字符串username=etUserName.getText().toString();
最终字符串password=etPassword.getText().toString();
final int age=Integer.parseInt(etAge.getText().toString());
最终字符串email=etEmail.getText().toString();
如果(name.equals(“”)| username.equals(“”)| password.equals(“”)| age==0 | email.equals(“”){
builder.setTitle(“出了问题”);
setMessage(“请填写所有文件”).setPositiveButton(“确定”,null).create().show();
}否则{
Response.Listener responseListener=新的Response.Listener(){
@凌驾
公共void onResponse(字符串响应){
试一试{
JSONObject jsonResponse=新的JSONObject(响应);
boolean success=jsonResponse.getBoolean(“success”);
如果(成功){
意向意向=新意向(RegisterActivity.this、LoginActivity.class);
RegisterActivity.this.startActivity(意向);
}否则{
builder=新建AlertDialog.builder(RegisterActivity.this);
setMessage(“注册失败”).setNegativeButton(“重试”,null).create().show();
}
}捕获(JSONException e){
e、 printStackTrace();
}
}
};
RegisterRequest RegisterRequest=新的RegisterRequest(名称、用户名、密码、年龄、电子邮件、响应侦听器);
RequestQueue=Volley.newRequestQueue(RegisterActivity.this);
添加(registerRequest);
}
}
});
}
Register.php

   <?php

    $servername = "mysql6.000webhost.com";
    $username = "a5124128_user";
    $password = "paddwoed4896";
    $dbname = "a5124128_account";


    $con =  mysqli_connect($servername, $username, $password, $dbname) or die(mysql_error());

    $db_selected = mysql_selectdb($con, $dbname);

    $name = $_POST["name"];
    $username = $_POST["username"];
    $password = $_POST["password"];
    $age = $_POST["age"];
    $email = $_POST["email"];

    $statement = mysqli_prepare($con, "INSERT INTO user (name, username, password, age, email) VALUES (?, ?, ?, ?, ?)");
    mysqli_stmt_bind_param($statement, "sssis", $name, $username, $password, $age, $email);
    mysqli_stmt_execute($statement);

    $response = array();;
    $response["success"] = true;  

    echo json_encode($response);

?>

下面是日志

    09-25 15:41:50.697 17259-17259/com.example.chang.e_ktm W/System.err: org.json.JSONException: Value <!DOCTYPE of type java.lang.String cannot be converted to JSONObject
09-25 15:41:50.698 17259-17259/com.example.chang.e_ktm W/System.err:     at org.json.JSON.typeMismatch(JSON.java:111)
09-25 15:41:50.698 17259-17259/com.example.chang.e_ktm W/System.err:     at org.json.JSONObject.<init>(JSONObject.java:160)
09-25 15:41:50.698 17259-17259/com.example.chang.e_ktm W/System.err:     at org.json.JSONObject.<init>(JSONObject.java:173)
09-25 15:41:50.698 17259-17259/com.example.chang.e_ktm W/System.err:     at com.example.chang.e_ktm.RegisterActivity$1$1.onResponse(RegisterActivity.java:78)
09-25 15:41:50.698 17259-17259/com.example.chang.e_ktm W/System.err:     at com.example.chang.e_ktm.RegisterActivity$1$1.onResponse(RegisterActivity.java:73)
09-25 15:41:50.699 17259-17259/com.example.chang.e_ktm W/System.err:     at com.android.volley.toolbox.StringRequest.deliverResponse(StringRequest.java:67)
09-25 15:41:50.699 17259-17259/com.example.chang.e_ktm W/System.err:     at com.android.volley.toolbox.StringRequest.deliverResponse(StringRequest.java:30)
09-25 15:41:50.699 17259-17259/com.example.chang.e_ktm W/System.err:     at com.android.volley.ExecutorDelivery$ResponseDeliveryRunnable.run(ExecutorDelivery.java:99)
09-25 15:41:50.699 17259-17259/com.example.chang.e_ktm W/System.err:     at android.os.Handler.handleCallback(Handler.java:815)
09-25 15:41:50.699 17259-17259/com.example.chang.e_ktm W/System.err:     at android.os.Handler.dispatchMessage(Handler.java:104)
09-25 15:41:50.699 17259-17259/com.example.chang.e_ktm W/System.err:     at android.os.Looper.loop(Looper.java:210)
09-25 15:41:50.699 17259-17259/com.example.chang.e_ktm W/System.err:     at android.app.ActivityThread.main(ActivityThread.java:5830)
09-25 15:41:50.699 17259-17259/com.example.chang.e_ktm W/System.err:     at java.lang.reflect.Method.invoke(Native Method)
09-25 15:41:50.699 17259-17259/com.example.chang.e_ktm W/System.err:     at java.lang.reflect.Method.invoke(Method.java:372)
09-25 15:41:50.699 17259-17259/com.example.chang.e_ktm W/System.err:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1113)
09-25 15:41:50.699 17259-17259/com.example.chang.e_ktm W/System.err:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:879)


09-25 15:41:50.697 17259-17259/com.example.chang.e_ktm W/System.err:org.json.JSONException:Value你没有从你的
php-api
中得到正确的响应。因此,在使用任何
REST客户机
时,检查
api

你没有从
php-api
中得到正确的响应。所以请检查that
api
一次使用任何像postman一样的
REST客户端。

值你能用附加的JSON响应更新问题吗?@fluffyBatman附加的jsonresponse是什么意思?我在哪里能找到它?public void onResponse(字符串响应)的响应值是多少
?@fluffyBatman抱歉地说,实际上我是android新手……我一直在关注youtube上的视频教程。不过我不知道响应的价值是什么……你能进一步告诉我吗?我怎么知道它的价值是什么?提前感谢你可以在“JSONObject jsonResponse=new JSONObject”行添加一个断点(响应);“并查看调试应用程序是否可以使用附加的JSON响应更新问题?@fluffyBatman附加的JSONResponse是什么意思?在哪里可以找到它?public void onResponse(字符串响应)的响应值是多少?”
?@fluffyBatman抱歉地说,实际上我是android新手……我一直在关注youtube上的视频教程。不过我不知道响应的价值是什么……你能进一步告诉我吗?我怎么知道它的价值是什么?提前感谢你可以在“JSONObject jsonResponse=new JSONObject”行添加一个断点(答复)“并查看调试应用程序检查api后该怎么办?@loneranger您能将api发出的json响应发送给我吗?@loneranger将其发送给您吗?@loneranger将其发布在您的问题中我添加到了我的问题中。.您刚才说的就是这个吗?检查api后该怎么办?@loneranger您能将json回复发送给我吗你从你的APIs那里得到的响应如何发送给你?@loneranger在你的问题中发布它我在我的问题中添加了…这就是你刚才说的吗?我没有理解你…你是什么意思?(对不起,MD吃我的“值我没有得到你…你是什么意思?(对不起,MD吃我的“值”)