JSONObject 被 try-catch 包围不起作用



我基本上是在做一个登录注册安卓项目。我的注册运行良好,但我在 try catch 中的代码不起作用。因此,当我单击注册按钮时,用户注册可以一直发生。

以下是我在 java 中的注册函数:

private void registerUser() {
final String username = register_Username.getEditText().getText().toString();
final String email = register_Email.getEditText().getText().toString();
final String password = register_Password.getEditText().getText().toString();
dialog.setMessage("Registering User...");
dialog.show();
StringRequest request = new StringRequest(Request.Method.POST, Constants.URL_REGISTER,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
dialog.dismiss();   
try {
JSONObject jsonObject= new JSONObject(response);                        
Toast.makeText(MainActivity.this,jsonObject.getString("message"),Toast.LENGTH_SHORT).show();  
} catch (JSONException e) {
e.printStackTrace();
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
dialog.hide();
Toast.makeText(MainActivity.this,"Error",Toast.LENGTH_SHORT).show();
}
}){
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String,String> params = new HashMap<>();
params.put("username",username);
params.put("email",email);
params.put("password",password);
return params;
}
};
RequestHandler.getInstance(this).addToRequestQueue(request);
}

这是我注册的 php 代码:

<?php
require_once '../includes/DBoperations.php';
$response=  array();
if ($_SERVER['REQUEST_METHOD']=='POST') {
if (isset($_POST['username']) && isset($_POST['password']) && isset($_POST['email'])) {
$db_connect= new DBoperations();
if ($db_connect->createUser($_POST['username'],$_POST['password'],$_POST['email'])) {
$response['error'] =false;
$response['message']= "User registered successfully!";
} else {
$response['error'] =true;
$response['message']= "User registered failed!";
}       
} else{
$response['error'] =true;
$response['message']= "Required fields are missing!";
}
} else {
$response['error'] =true;
$response['message']= "Invalid Request";
}
echo json_encode($response);
?>
">

错误"或"消息"不能被烘烤。我该怎么办?

利用函数 JSON.parse(( 方法将字符串解析为 JSONObject。然后遍历到 JSON 中的"消息"数据。

我通过使用 trim(( 从字段中获取字符串来解决此问题。

final String username = register_Username.getEditText().getText().toString().trim();
final String email = register_Email.getEditText().getText().toString().trim();
final String password = register_Password.getEditText().getText().toString().trim();

希望这有帮助!

最新更新