如何解决System.err: org.json.JSONException: 类型 java.lang.String 的值连接无法转换为 JSONObject W/System.err
我正在 android studio 中使用 volley、PHP、MysqL 开发登录。
我遇到的问题是,当我注册一个用户时,应用程序会为我注册它,但同时它会抛出一个错误吐司并且不会更改活动,它会停留在注册活动中,并且进度对话框会四处走动没有别的。
我已经查看了我的代码,但无法确定我的问题,如果您能支持我,我将不胜感激。
为了安全,我审查了我的 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
$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 举报,一经查实,本站将立刻删除。