Retrofit2 Header이용

고성욱·2023년 3월 17일
0

안드로이드

목록 보기
5/26

Retrofit2 Header이용

  • 레트로핏을 사용하여 로그인을 구현하는중 토큰을 이용한 로그인으로 인해 Header의 이용방법이 필요해 졌다. SessionID가 들어가야할 Authorization에 값을 담아 주기 위해 새로 설정을 바꿔주어야 했다.

사용방법

//@통신 방식 ("통신 API명")
@GET("api/Login")
Call<LoginResponse> getLoginResponse(@Header("Authorization") LoginRequest loginRequest);
  • 위의 방식처럼 Response함수에 이노테이션 Header를 담아서 보내면 된다.
  • 이 방법은 Httpcontext.request.header에서 찾을수 있도록 하는것 → SessionID를 부여받고 저장을 하기 위함

    Annotation 종류

    (서버의 파일(데이터)에 대한 CRUD 기준, 서버 DB에 대한 쿼리 기준)

    주요 메소드

    • @GET : 바디 없이 URL에 모든 정보를 담아 요청한다. 서버에 데이터를 조회(Read, SELECT) 할 때 쓰며 @Query@QueryMap 등의 Annotation과 함께 쓰인다.

    • @POST : 바디에 정보를 담아 요청한다. 서버에 데이터를 생성(Create, INSERT)할 때 쓰며 @Body@SerializedName , @Field@FieldMap (@FormUrlEncoded 경우) 등의 Annotation과 함께 쓰인다.

    • @PUT : POST와 마찬가지 방식으로 요청하나, 서버에 데이터를 수정(Update, UPDATE) 할때 쓰인다. POST 와 다르게 수정할 데이터의 경로를 @Path로 명시해야한다.

    • @DELETE : 데이터를 제거(Delete, DELETE)할 때 쓰이며 제거할 경로를 @Path 로 명시한다. 반환 DTO는 없고 삭제시 응답 코드 200으로 응답한다.

      기타 메소드

    • @HEAD : 헤더 정보를 조회한다.

    • @TRACE : 서버에 루프백 메시지 호출을 위한 테스트로 사용(클라이언트 서버 사이 프록시 서버에서 변경여부 확인시 사용)

    • @OPTIONS : 서버의 특정 URL에서 지원하는 메소드의 종류를 확인하는 용도, 요청 메소드 목록을 리턴하며 URL에 **** 기입시 서버 전체의 메소드를 확인

      URL 관련 어노테이션

    • @ Path : 경로를 설정할때 사용하는 Annotation

      요청을 다른 데이터 방식으로 정의

      요청 메소드 어노테이션 위에 추가로 명시

    • @FormUrlEncoded : form-encoeded 데이터로 정의한다. @Field Annotation을 통해 key-value 를 설정할 수 있다.

    • @Multipart : 주로 파일을 전송할때 사용한다. @Part Annotation으로 객체를 직렬화할 수 있게 돕는다.

      헤더 정의

    • @Headers : 메소드 어노테이션 상단에 정적헤더들을 정의할때 사용한다.

    • @Header : 함수 파라미터로 동적 헤더를 구성할때 사용한다.

      출처 - https://full-stack.tistory.com/m/entry/Android-Library-Retrofit2-2-HTTP-Method

profile
안드로이드, 파이썬 개발자

0개의 댓글