티스토리 뷰
// 에어코리아 미세먼지 현재상황
suspend fun getAirkoreaDustNow(gu:String): String {
val API_URL = "http://apis.data.go.kr/B552584/ArpltnInforInqireSvc/getMsrstnAcctoRltmMesureDnsty?serviceKey="+URLEncoder.encode(serviceKey, "UTF-8")+"&returnType=json" +"&stationName="+ URLEncoder.encode(gu) +"&dataTerm=DAILY"+"&ver=1.3"
//api의 서비스키가 2번 encoding되는 이슈로 인해서 사용
val factory = DefaultUriBuilderFactory(API_URL)
factory.setEncodingMode(DefaultUriBuilderFactory.EncodingMode.VALUES_ONLY)
val wc = WebClient.builder().uriBuilderFactory(factory).baseUrl(API_URL).build()
return wc.get()
.accept(MediaType.APPLICATION_JSON)
.retrieve()
.awaitBody()
}
// 기상청 동네예보 API call
suspend fun getVillageForecast(kma_x:String, kma_y:String): String =
client().get()
.uri {
val callTimeArray = getKmaWeatherVillageApiCallTime()
val callDay = callTimeArray[0]
val callTime = callTimeArray[1]
it.path("/1360000/VilageFcstInfoService/getVilageFcst")
.queryParam("serviceKey", serviceKey)
.queryParam("numOfRows", "200")
.queryParam("dataType", "JSON")
.queryParam("pageNo", "1")
.queryParam("base_date", callDay)
.queryParam("base_time", callTime)
.queryParam("nx", kma_x)
.queryParam("ny", kma_y)
.build()
}
.accept(MediaType.APPLICATION_JSON)
.retrieve()
.awaitBody()
샘플로는 에어코리아와 기상청 동네예보를 가져왔다.
'프로그래밍 > 안드로이드' 카테고리의 다른 글
Flutter로 앱 만든 사용후기 (0) | 2021.12.04 |
---|---|
Flutter.io Android License Status Unknown (0) | 2021.05.25 |
웹플럭스 코틀린(Coroutine) 리턴 방식 (0) | 2021.05.18 |
웹플럭스 코틀린(Coroutine) db 사용법 (0) | 2021.05.18 |
웹플럭스 코틀린(Coroutine) 에서 post get 받는 방법 (0) | 2021.05.18 |