티스토리 뷰

 // 에어코리아 미세먼지 현재상황
    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()

샘플로는 에어코리아와 기상청 동네예보를 가져왔다. 

 

 

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함