상세 컨텐츠

본문 제목

[안드로이드 코틀린] HTTP 통신 Retrofit2 사용법 part1 - 권한 및 설정

안드로이드

by aries574 2022. 9. 28. 17:35

본문


Retrofit2 라이브러리를 이용해서 HTTP 통신을 하는 방법을 알아보겠습니다.

이번 시간에는 권한설정을 하겠습니다. 


목차

1. 권한 등록
2. 라이브러리 등록
3. 모델 클래스
4. 서비스 인터페이스


1. 권한 등록

AndroidManifest.xml

1-1 권한 등록

manifest 태그 안에 추가합니다.

    <uses-permission android:name="android.permission.INTERNET"/>

1-2 http통신 허용

application 태그 안에 옵션을 추가합니다.

android:usesCleartextTraffic="true"


2. 라이브러리 등록

build.gradle(Module:프로젝트명:app)

dependencies 괄호 안에 아래 코드를 넣어주시면 됩니다.

converter-gson: 호출해서 받은 json타입을 모델 클래스에 넣어주는 일을 합니다.

retrofit: Retrofit을 사용하기 위한 필수 라이브러리입니다. 

    implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
    implementation 'com.squareup.retrofit2:retrofit:2.9.0'

 


3. 모델 클래스

 3-1 호출받을 데이터 

{
	"status":"0000",
	"data":{
		"opening_price":"41990",
		"closing_price":"39250",
		"min_price":"38850",
		"max_price":"42040",
		"units_traded":"286216.39811369",
		"acc_trade_value":"11540564673.1119",
		"prev_closing_price":"42000",
		"units_traded_24H":"599231.9692916",
		"acc_trade_value_24H":"24648790492.2505",
		"fluctate_24H":"-2070",
		"fluctate_rate_24H":"-5.01",
		"date":"1664333725925"
	}
}

 

3-2 Ticker.kt

- 설명 -

 1. status: status 받을 변수.

 2. data: data안의 데이터를 받을 변수

 3. 이름같게 해야 합니다. 

 4. 변수명 위에 @SerializedName("opening_price") 같이 하면 변수명을 똑같이 하지 않아도 됩니다.

 5. 언더바 뒤에 첫 글자를 대문자로 변경하면 @SerializedName을 안해도 됩니다.

     예: opening_price -> openingPrice

data class Ticker(

    val status: String,
    val data: Data
)

 

3-3 Data.kt

 - 설명 -

 data 안의 키값과 같은 이름으로 정해야 합니다. 

data class Data(
    val opening_price: String,
    val closing_price: String,
    val min_price: String,
    val max_price: String
)


4. 서비스 인터페이스

- 설명 -

 1. 호출할 api 정보로 만든 함수가 있는 인터페이스

 2. @GET("public/ticker/{order_currency}_{payment_currency}")

   GET방식으로 통신하며, { } 안에는 경로를 동적으로 호출하고 싶을 때 필요합니다. 

   공통 url 주소는 실제 이 함수를 호출할 때 지정합니다. 

 3. api 문서: https://apidocs.bithumb.com/reference/현재가-정보-조회 

   실제 호출 api : https://api.bithumb.com/public/ticker/ETC_KRW 

interface ApiService {

    @GET("public/ticker/{order_currency}_{payment_currency}")
    fun getCoinTicker(
        @Path("order_currency") orderCurrency: String,
        @Path("payment_currency") paymentCurrency: String
    ): Call<Ticker>
}

2022.09.27 - [안드로이드] - [안드로이드 코틀린] Vibrator 진동 효과 내는 방법

 

[안드로이드 코틀린] Vibrator 진동 효과 내는 방법

이번 시간에는 진동으로 알림 효과 내는 방법에 대하여 알아보겠습니다. 목차 1. 권한 등록 2. 메인 화면 activity_main.xml 3. 메인 코드 MainActivity.kt 1. 권한 등록 - 설명 -  진동 효과를 내기..

aries574.tistory.com

2022.09.26 - [안드로이드] - [안드로이드 코틀린] Ringtone 효과음 내는 방법

 

[안드로이드 코틀린] Ringtone 효과음 내는 방법

이번 시간에는 소리로 알림을 알려주는 방법에 대하여 알아보겠습니다. 목차 1. 실행 화면 2. 메인 화면 activity_main.xml 3. 메인 코드 MainActivity.kt 1. 실행 화면 2. 메인 화면 activity_main..

aries574.tistory.com

2022.09.23 - [안드로이드] - [안드로이드 코틀린] RecyclerView 다중 선택 삭제하는 방법

 

[안드로이드 코틀린] RecyclerView 다중 선택 삭제하는 방법

이번 시간에는 다중 선택에 이어서 다중 삭제하는 방법에 대하여 알아보겠습니다. 이전 포스팅에 이어서 하니 아래 포스팅을 먼저 보시고 오시면 됩니다. 2022.09.22 - [안드로이드] - [안드로이드

aries574.tistory.com

 

반응형

관련글 더보기

댓글 영역