๊ณต๊ณต๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ค๋ ๊ณผ์ ์์ ์์ํ ๋ฌธ์ ๊ฐ ์๊ฒผ๋ค.
encode key๊ฐ ์์ฒญ์ค์ ๋ณํ๋ ๋ฌธ์ ๋ค. ASCIIํ๋ฅผ ๋ณด๋ %๊ฐ 25๋ก ์ ํ์ ์ค๊ฐ์ค๊ฐ์ ์ฝ์ ๋์ด ์์๋๋ฐ ์ด ๋ฌธ์ ๋ %๋ฅผ string์ผ๋ก ๋ฐ๊ฟ๋ ์๊ธฐ๋ ๋ฌธ์ ๋ก encoding ํ์์ด ๋ฌ๋ผ ๋ฐ์ํ๋ ๋ฌธ์ ๋ค. ๊ทธ๋ฆฌ๊ณ ์ด ๋ฌธ์ ๋ ์๋ ์ฌ์ง๊ณผ ๊ฐ์ด
API ๊ฐ์ ์ ๋๋ก ๋ชป๊ฐ์ ธ์ค๋ ํ์์ ์ผ์ผํจ๋ค. ๋น์ฐํ ํค๊ฐ์ ์ ๋๋ก ๋ฃ์ผ๋ฉด ์ถ๋ ฅ์ด ์ ๋๊ธฐ์ ๋ต๋ณ์ ํค๊ฐ์ ๋ฌธ์ ๊ฐ ์๋ค๋ ๋ด์ฉ๋ง ๋์จ๋ค.
๋ฌธ์ ์
HTTP์ GET ๋๋ POST ์ ์ก์ด ๋ฐ์ํ ๋ form ํ๋์ ์ด๋ฆ๊ณผ ๊ฐ์ ์ธ์ฝ๋ฉ ๋์ด ์๋ฒ๋ก ๋ณด๋ด์ง๋ค. ๋์ ๊ฒฝ์ฐ์๋ retrofit ์ @Query annotation์ ์๋ ๊ฑธ๋ก ์์ฒญํ๊ฒ ๋๋ค.
์ด ๊ณผ์ ์์ ๊ธฐ๋ณธ์ ์ธ URI ์ธ์ฝ๋ฉ์ ์๋ ๋ฐฉ์์ ํผ์ผํธ ์ธ์ฝ๋ฉ(Url encoding) ๊ท์น์ ๋ฐ๋ฅด๊ธฐ ๋๋ฌธ์ %๊ฐ 25๋ก ๋ฐ๋๋ ๋ฌธ์ ๊ฐ ์๊ธธ ์ ์๊ฒ ๋๋ค.
interface OpenDataInfo {
@GET("/B552584/EvCharger/getChargerInfo?")
fun getResult(
@Query("serviceKey") serviceKey : String,
@Query("pageNo") pageNo: String,
@Query("numOfRows") numOfRows: String,
@Query("zcode") zcode: String,
):Call<MapInfoData?>
}
val key = decode(BuildConfig.api_key_encode, "UTF-8")
๊ฐ์ฒด ์์ฑ์ ํค๊ฐ์ ์ฟผ๋ฆฌ์ ๋ฃ์ด์ค๋ค. UTF-8์ ์๋ฃ์ด๋ ์ ์๋ํ๊ธด ํ์ง๋ง deprecated๋ ๋ฉ์๋๊ธฐ ๋๋ฌธ์ ์ฌ์ฉํ์ง ์๋๊ฒ ์ข๋ค.
์ด๋ ๊ฒ ํ๋ฉด ์๋ํํ๋ก ์ ์ ๋ ฅ๋๋ค.
์ถ๊ฐ๋ก API Key์ด๋ฏ๋ก local.properties์ ์ ์ฅํด์ ์ฐ๋๊ฒ ์์ ํ๋ค๊ณ ํด์ ์ด๋ฐ ๋ฐฉ์์ ์ฌ์ฉํด๋ดค๋ค.
https://developers.google.com/maps/url-encoding?hl=ko
https://en.wikipedia.org/wiki/Percent-encoding
๋์์ด ๋๋ค๋ฉด ๋๊ธ์ด๋ ๊ณต๊ฐ ๋ฒํผ ํ ๋ฒ์ฉ ๋๋ฅด๊ณ ๊ฐ์ฃผ์ธ์! ๋ก๊ทธ์ธ ์ํด๋ ๋ฉ๋๋ค ^_^
'Android ๐ฅ๏ธ > ์ฝ์งโ๏ธ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์๋๋ก์ด๋ ๋ฌดํ์คํฌ๋กค ๊ธฐ์ด - Infinite Scroll, Endless Scroll (0) | 2024.04.03 |
---|---|
ListAdapter - DiffUtil ์ฝ์ง (0) | 2024.04.03 |
๋ฉํฐ๋ชจ๋ ๋์ ๊ธฐ(3) - Kotlin DSL, buildSrc (0) | 2023.12.15 |
๋ฉํฐ๋ชจ๋ ๋์ ๊ธฐ(2) - Hilt (0) | 2023.12.15 |
๋ฉํฐ๋ชจ๋ ๋์ ๊ธฐ(1) (0) | 2023.12.15 |