본문 바로가기
Android

서버 통신 로그인 DB연동( Volley 라이브러리 )

by noddu 2021. 4. 3.
728x90
반응형

volley라이브러리 import하기

 

 

●MainActivity

public class MainActivity extends AppCompatActivity {
    Button btn_join, btn_login;
    EditText edt_id, edt_pw;

    RequestQueue requestQueue;  // 서버와 통신할 통로
    StringRequest stringRequest;    // 내가 전송할 데이터

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

        edt_id = findViewById(R.id.edt_id);
        edt_pw = findViewById(R.id.edt_pw);
        btn_join = findViewById(R.id.btn_join);
        btn_login = findViewById(R.id.btn_login);

        String url = "http://211.48.213.190:8081/MemberServer/LoginServlet";

        requestQueue = Volley.newRequestQueue(getApplicationContext());


        stringRequest = new StringRequest(Request.Method.POST, url, new Response.Listener<String>() {
            @Override
            public void onResponse(String response) {
                // 서버에서 돌려준 응답을 처리
                if (response.equals("true")){
                    Toast.makeText(getApplicationContext(),"성공ㅋ",Toast.LENGTH_SHORT).show();
                    // finish(); - finish 하면 성공하고 앱 종료됨
                }else {
                    Toast.makeText(getApplicationContext(),"실패ㅋ",Toast.LENGTH_SHORT).show();
                }
            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                // error.toString(); 하면 에러 찍힘
            }
        }){
            // StringRequest 객체 범위

            @Nullable
            @Override
            protected Map<String, String> getParams() throws AuthFailureError {
                // 전송할 데이터 Key, Value 로 셋팅하기
                Map<String, String> temp = new HashMap<>();
                temp.put("id",edt_id.getText().toString());    // put - 인덱스따라 추가가아니라 집어넣는느낌
                temp.put("pw",edt_pw.getText().toString());

                return temp;
            }
        };

        btn_login.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // 서버로 stringRequest 쏘기
                requestQueue.add(stringRequest);
            }
        });


        // join 버튼 누르면 joinActivity 로 이동
        btn_join.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(MainActivity.this, JoinActivity.class);
                // 두번째 액티비티 실행시키고
                // 두번째 액티비티에서 서버랑 통신
                startActivity(intent);


            }
        });

    }
}

getParams 사용하기

 

 

 

 

 

 

JoinActivity

public class JoinActivity extends AppCompatActivity {
    // 입력한 ID 와 PW 정보를 서버로 전송
    // Volley Library 사용
    // 1. Volley Library import 하기
    // 2. RequestQueue, StringRequest 생성

    RequestQueue requestQueue;  // 서버와 통신할 통로
    StringRequest stringRequest;    // 내가 전송할 데이터

    EditText edt_id, edt_pw;
    Button btn_join;

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

        edt_id = findViewById(R.id.edt_id);
        edt_pw = findViewById(R.id.edt_pw);
        btn_join = findViewById(R.id.btn_join);

        // 3. RequestQueue 생성
        String url = "http://211.48.213.190:8081/MemberServer/JoinServlet";

        requestQueue = Volley.newRequestQueue(getApplicationContext());

        // 4. StringRequest 생성
            // 1) 전송방식
            // 2) url  (서버의 주소)
            // 3) 응답을처리할 응답리스너
            // 4) 에러를감지할 에러리스너


        // 5. 전송할 데이터 미리 정의
        stringRequest = new StringRequest(Request.Method.POST, url, new Response.Listener<String>() {
            @Override
            public void onResponse(String response) {
                // 서버에서 돌려준 응답을 처리
                if (response.equals("1")){
                    Toast.makeText(getApplicationContext(),"회원가입완료 ㅋ",Toast.LENGTH_SHORT).show();
                    finish();
                }else {
                    Toast.makeText(getApplicationContext(),"회원가입실패 ㅋ",Toast.LENGTH_SHORT).show();
                }
            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                // error.toString(); 하면 에러 찍힘
            }
        }){
            // StringRequest 객체 범위

            @Nullable
            @Override
            protected Map<String, String> getParams() throws AuthFailureError {
                // 전송할 데이터 Key, Value 로 셋팅하기
                Map<String, String> temp = new HashMap<>();
                temp.put("id",edt_id.getText().toString());    // put - 인덱스따라 추가가아니라 집어넣는느낌
                temp.put("pw",edt_pw.getText().toString());

                return temp;
            }
        };

        btn_join.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // 6. 서버로 stringRequest 쏘기
                requestQueue.add(stringRequest);
            }
        });

        // 7. 인터넷 권한주기


    }
}

인터넷 권한주기

 

 

 

반응형

'Android' 카테고리의 다른 글

fragment  (0) 2021.04.06
로그인 후 채팅 방 만들기??  (0) 2021.04.06
Custom ListView + DB연동하기 ( SQLite )  (0) 2021.04.03
Adapter -> Custom ListView활용  (0) 2021.03.25
Adapter View  (0) 2021.03.24