๊ด€๋ฆฌ ๋ฉ”๋‰ด

ruriruriya

[Android] ์•ˆ๋“œ๋กœ์ด๋“œ - Retrofit2 ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ด์šฉํ•œ POST๋กœ API ํ˜ธ์ถœํ•˜์—ฌ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ• ๋ณธ๋ฌธ

๐Ÿค–Android

[Android] ์•ˆ๋“œ๋กœ์ด๋“œ - Retrofit2 ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ด์šฉํ•œ POST๋กœ API ํ˜ธ์ถœํ•˜์—ฌ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•

๋ฃจ๋ฆฌ์•ผใ…‘ 2024. 1. 5. 17:13
๋ฐ˜์‘ํ˜•

Retrofit2 ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ด์šฉํ•ด์„œ POST๋กœ API ํ˜ธ์ถœํ•˜์—ฌ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž.

Retrofit2 ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๋จผ์ € ํ™˜๊ฒฝ ์„ค์ •์„ ๋จผ์ € ํ•ด์•ผ ํ•œ๋‹ค.
์•„๋ž˜ ๋งํฌ ์ฐธ๊ณ !

https://ruriruriya.tistory.com/161

 

[Android] ์•ˆ๋“œ๋กœ์ด๋“œ - Retrofit2 ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ฌ์šฉ์„ ์œ„ํ•œ ์„ค์ • ๋ฐฉ๋ฒ•

Retrofit์€ ์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ์—์„œ ๋„คํŠธ์›Œํฌ ํ†ต์‹ ์„ ๊ฐ„ํŽธํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋‹ค. ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” Square์‚ฌ์—์„œ ๊ฐœ๋ฐœ๋˜์—ˆ์œผ๋ฉฐ, ์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ์—์„œ RESTful API์™€์˜ ํ†ต์‹ ์„ ํšจ์œจ์ 

ruriruriya.tistory.com

 

ํ•ด๋‹น Activity ์„ค์ •

  1. retrofit ์‚ฌ์šฉ์„ ์œ„ํ•œ ๋ณ€์ˆ˜๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.
  2. api ํŒจํ‚ค์ง€์— ์žˆ๋Š”, Interface๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.
  3. ๋ณด๋‚ผ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฌถ์Œ ์ฒ˜๋ฆฌํ•ด์„œ ๋งŒ๋“ ๋‹ค.
  4. api ํ˜ธ์ถœํ•œ๋‹ค.
  5. ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ๋ฐ›์€ ์‘๋‹ต์„ ์ฒ˜๋ฆฌํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•œ๋‹ค.
btnRegister.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        String email = editEmail.getText().toString().trim();
        String password = editPassword.getText().toString().trim();
        String nickname = editNickname.getText().toString().trim();

        // ๋„คํŠธ์›Œํฌ ํšŒ์›๊ฐ€์ž… API๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค. โ˜…โ˜…โ˜…โ˜…โ˜…
        
        // 1. retrofit ๋ณ€์ˆ˜ ์ƒ์„ฑ
        Retrofit retrofit = NetworkClient.getRetrofitClient(RegisterActivity.this);

        // 2. api ํŒจํ‚ค์ง€์— ์žˆ๋Š”, Interface ์ƒ์„ฑ
        UserApi api = retrofit.create(UserApi.class);

        // 3. ๋ณด๋‚ผ ๋ฐ์ดํ„ฐ ๋งŒ๋“ ๋‹ค. => ๋ฌถ์Œ ์ฒ˜๋ฆฌ : ํด๋ž˜์Šค์˜ ๊ฐ์ฒด ์ƒ์„ฑ.

        User user = new User(email, password, nickname);

        // 4. api ํ˜ธ์ถœ
        Call<UserRes> call = api.register(user);

        // 5. ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ๋ฐ›์€ ์‘๋‹ต์„ ์ฒ˜๋ฆฌํ•˜๋Š” ์ฝ”๋“œ ์ž‘์„ฑ.
        call.enqueue(new Callback<UserRes>() {
            @Override
            public void onResponse(Call<UserRes> call, Response<UserRes> response) {
            
                // ์„œ๋ฒ„์—์„œ ๋ณด๋‚ธ ์‘๋‹ต์ด 200 OK์ผ ๋•Œ ์ฒ˜๋ฆฌํ•˜๋Š” ์ฝ”๋“œ
                if(response.isSuccessful()){
                    UserRes userRes = response.body();

                    SharedPreferences sp = getSharedPreferences(Config.PREFERENCE_NAME,MODE_PRIVATE);
                    SharedPreferences.Editor editor = sp.edit();
                    editor.putString("token",userRes.access_token);
                    editor.apply();

                    // ์ด์ƒ ์—†์œผ๋ฏ€๋กœ ๋ฉ”์ธ ์•กํ‹ฐ๋น„ํ‹ฐ๋ฅผ ์‹คํ–‰ํ•œ๋‹ค.
                    Intent intent = new Intent(RegisterActivity.this,MainActivity.class);
                    startActivity(intent);
                    finish();
                }


            }

            @Override
            public void onFailure(Call<UserRes> call, Throwable t) {

                // ์œ ์ €ํ•œํ…Œ ๋„คํŠธ์›Œํฌ ํ†ต์‹  ์‹คํŒจํ–ˆ๋‹ค๊ณ  ์•Œ๋ ค์ค€๋‹ค.
                Toast.makeText(RegisterActivity.this,"๋„คํŠธ์›Œํฌ ํ†ต์‹  ์‹คํŒจ.",Toast.LENGTH_SHORT).show();

            }
        });


    }
});
๋ฐ˜์‘ํ˜•