728x90
반응형
https://kofathena.tistory.com/41
step2-2. 경로의 이름을 고정하지 않고 사용자에게 파라미터로 전달받아서 지정하자. @Path
@Path로 하는 방법.
- 경로를 중괄호로 열어준다. 정하지 않은 변수라는뜻. 이름을 아무렇게나 써도 된다.
※ {}는 변수라는뜻. 없었으면 폴더 이름이다.
- 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
728x90
반응형
'Android Studio(Java)' 카테고리의 다른 글
Android Studio Firebase를 이용하여 채팅방 만들기 (1) | 2023.03.20 |
---|---|
Android Studio Retrofit (3) (0) | 2023.03.19 |
Android Studio Retrofit (1) (0) | 2023.03.16 |
Android Studio BackEnd (0) | 2023.03.10 |
Android Studio Fragment랑 FragmentActivity 차이점 (0) | 2023.03.06 |