자바 언어로 로그인/회원가입을 구현하고 있습니다. 과정 중, 회원가입 기능은 정상적으로 동작하는데 로그인 기능이 작동하지 않고 있습니다.
코드는 이러합니다.
public class LoginActivity extends AppCompatActivity {
private EditText et_id_log, et_pass_log;
private Button btn_login, btn_register_log;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
et_id_log = findViewById(R.id.et_id_log);
et_pass_log = findViewById(R.id.et_pass_log);
//로그인,회원가입 버튼
btn_login = findViewById(R.id.btn_login);
btn_register_log = findViewById(R.id.btn_register_log);
//버튼 클릭시 회원가입 페이지로 이동
btn_register_log.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(LoginActivity.this, RegisterActivity.class);
startActivity(intent);
}
});
//로그인 버튼 클릭
btn_login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String userID = et_id_log.getText().toString();
String userPass = et_pass_log.getText().toString();
System.out.println("버튼 클릭1");
Response.Listener<String> responseListener = new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
System.out.println("버튼 클릭2");
JSONObject jsonObject = new JSONObject(response);
boolean success = jsonObject.getBoolean("success");
System.out.println("버튼 클릭3");
if(success){ //로그인 성공
Toast.makeText(getApplicationContext(), "버튼 클릭", Toast.LENGTH_SHORT).show();
String JSONUserID = jsonObject.getString("userID");
String JSONUserPass = jsonObject.getString("userPassword");
System.out.println("버튼 클릭4");
Toast.makeText(getApplicationContext(), "로그인에 성공하셨습니다.", Toast.LENGTH_SHORT).show();
Intent intent = new Intent(LoginActivity.this, MainActivity.class);
//Intent intent = new Intent(getApplicationContext(), MainActivity.class);
intent.putExtra("userID", JSONUserID);
intent.putExtra("userPass", JSONUserPass);
startActivity(intent);
}
else { //로그인 실패
Toast.makeText(getApplicationContext(), "로그인에 실패하셨습니다.", Toast.LENGTH_SHORT).show();
return;
}
} catch (JSONException e) {
e.printStackTrace();
}
}
};
LoginRequst loginRequst = new LoginRequst(userID, userPass, responseListener);
RequestQueue queue = Volley.newRequestQueue(LoginActivity.this);
queue.add(loginRequst);
}
});
}
}
그리고 로그인 버튼 클릭 시 나오는 오류 메시지는 이렇습니다.
2022-11-22 19:24:57.265 18358-18358/com.cookandroid.project_login_2 I/System.out: 버튼 클릭1
2022-11-22 19:24:57.324 18358-18358/com.cookandroid.project_login_2 I/System.out: 버튼 클릭2
2022-11-22 19:24:57.324 18358-18358/com.cookandroid.project_login_2 W/System.err: org.json.JSONException: Value <br of type java.lang.String cannot be converted to JSONObject
2022-11-22 19:24:57.325 18358-18358/com.cookandroid.project_login_2 W/System.err: at org.json.JSON.typeMismatch(JSON.java:112)
2022-11-22 19:24:57.325 18358-18358/com.cookandroid.project_login_2 W/System.err: at org.json.JSONObject.<init>(JSONObject.java:172)
2022-11-22 19:24:57.325 18358-18358/com.cookandroid.project_login_2 W/System.err: at org.json.JSONObject.<init>(JSONObject.java:185)
2022-11-22 19:24:57.325 18358-18358/com.cookandroid.project_login_2 W/System.err: at com.cookandroid.project_login_2.LoginActivity$2$1.onResponse(LoginActivity.java:57)
2022-11-22 19:24:57.325 18358-18358/com.cookandroid.project_login_2 W/System.err: at com.cookandroid.project_login_2.LoginActivity$2$1.onResponse(LoginActivity.java:52)
2022-11-22 19:24:57.325 18358-18358/com.cookandroid.project_login_2 W/System.err: at com.android.volley.toolbox.StringRequest.deliverResponse(StringRequest.java:82)
2022-11-22 19:24:57.325 18358-18358/com.cookandroid.project_login_2 W/System.err: at com.android.volley.toolbox.StringRequest.deliverResponse(StringRequest.java:29)
2022-11-22 19:24:57.325 18358-18358/com.cookandroid.project_login_2 W/System.err: at com.android.volley.ExecutorDelivery$ResponseDeliveryRunnable.run(ExecutorDelivery.java:102)
2022-11-22 19:24:57.325 18358-18358/com.cookandroid.project_login_2 W/System.err: at android.os.Handler.handleCallback(Handler.java:938)
2022-11-22 19:24:57.326 18358-18358/com.cookandroid.project_login_2 W/System.err: at android.os.Handler.dispatchMessage(Handler.java:99)
2022-11-22 19:24:57.326 18358-18358/com.cookandroid.project_login_2 W/System.err: at android.os.Looper.loopOnce(Looper.java:201)
2022-11-22 19:24:57.326 18358-18358/com.cookandroid.project_login_2 W/System.err: at android.os.Looper.loop(Looper.java:288)
2022-11-22 19:24:57.326 18358-18358/com.cookandroid.project_login_2 W/System.err: at android.app.ActivityThread.main(ActivityThread.java:7839)
2022-11-22 19:24:57.326 18358-18358/com.cookandroid.project_login_2 W/System.err: at java.lang.reflect.Method.invoke(Native Method)
2022-11-22 19:24:57.326 18358-18358/com.cookandroid.project_login_2 W/System.err: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
2022-11-22 19:24:57.326 18358-18358/com.cookandroid.project_login_2 W/System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)
(맨 위의 버튼 클릭 print 메시지는 어디서 멈추는지를 확인하기 위해 여기 넣었습니다.)
서버에서 값을 JSON이 아닌 string으로 받고 있어 response 출력해보라는 말이나 너무 초보라 그것도 하는 법을 모르고 있습니다...
그렇다고 서버의 값을 이것저것 바꿔봐도 개선이 안 되네요. 여기서 나아가려면 어떻게 해야 할까요?