본문 바로가기
Android Studio(Java)

Android Studio Retrofit (2)

by 히예네 2023. 3. 16.
728x90
반응형

https://kofathena.tistory.com/41

 

Android Studio Retrofit (1)

step1. 사전작업 : 라이브러리 3개 추가, 뷰바인딩 Retrofit2버전을 쓰려면 라이브러리에 3개를 추가해줘야한다. (세트라고 생각하면 된다. ) ※ 구글 볼리도 많이 쓴다. 라이브러리명 회사명 기능 retr

kofathena.tistory.com

 

step2-2. 경로의 이름을 고정하지 않고 사용자에게 파라미터로 전달받아서 지정하자. @Path

@Path로 하는 방법.

  1. 경로를 중괄호로 열어준다. 정하지 않은 변수라는뜻. 이름을 아무렇게나 써도 된다.

※ {}는 변수라는뜻. 없었으면 폴더 이름이다.

  1. Call<Item> getBoardJsonByPath(@Path("aaa") String path, @Path("bbb") String fileName);

(@Path("aaa") String path, @Path("bbb") String fileName);

함수를 호출할 때 값을 받을수있다.

파라미터에 String path와 StringfileName (문자열 2개)를 사용자에게 받는다고 써준다.

@Path는 어디를 말하는지 써주는것이다. (어노테이션 확인)

 

public interface RetrofitService {
    
  @GET("{aaa}/{bbb}") //(경로 / 파일명)
  Call<Item> getBoardJsonByPath(@Path("aaa") String path, @Path("bbb") String fileName);

}

 

void clickBtn2(){
        //10. 경로의 이름을 고정하지 않고 파라미터로 전달하여 지정해보기
        //10. (1) Retrofit 객체 생성
        Retrofit.Builder builder = new Retrofit.Builder();
        builder.baseUrl("http:/-------------co.kr");
        builder.addConverterFactory(GsonConverterFactory.create()); //크리에이트해서 컨버터 만들어줌
        Retrofit retrofit = builder.build();

        //10. (2)서비스 인터페이스 설계하기 - 원하는 GET or POST 동작을 하는 추상메소드 설계 - 작업요구서 같은거...
        //getBoardJsonByPath(@Path("aaa") String path, @Path("bbb") String fileName);

        //10. (3)Service 인터페이스 객체 생성
        RetrofitService retrofitService = retrofit.create(RetrofitService.class);
        //인터페이스는 레트로핏이 써주는것이다.

        //10. (4)추상메소드 호출하여 네트워크 작업 수행 Call 객체 받기
        Call<Item> call = retrofitService.getBoardJsonByPath("Retrofit","board.json");
        //AI코더가 알아서 코드 끝!
        // 명세서를 찍어보니까 추상메소드가 있다. path는 폴더명 fileName 파일명

        //10. (5)
        call.enqueue(new Callback<Item>() {
            @Override
            public void onResponse(Call<Item> call, Response<Item> response) {
                Item item = response.body();
                binding.tv.setText(item.name+"\n"+item.msg);
            }

            @Override
            public void onFailure(Call<Item> call, Throwable t) {
                binding.tv.setText("error : "+t.getMessage()); //t는 에러를 던지는놈이다. 그놈에게 메세지 달라고하삼.
            }
        });

    }

 

https://kofathena.tistory.com/43

 

Android Studio Retrofit (3)

내가 쓴 글씨를 서버로 전송해보자. (1,2는 내가 서버에서 받는거만 함. ) https://kofathena.tistory.com/41 Android Studio Retrofit (1) step1. 사전작업 : 라이브러리 3개 추가, 뷰바인딩 Retrofit2버전을 쓰려면 라이

kofathena.tistory.com

 

728x90
반응형