Retrofit을 이용하여, 개발하던 중에
쿼리가 인코딩되어 정상적인 주소가 아니게 되는 경우가 발생했다.
서울시 실시간 열차 위치 정보를 받아오고자 아래의 예시처럼 요청인자 "2호선"을 @Path를 이용하여 사용했다.
http://swopenapi.seoul.go.kr/api/subway/sample/xml/realtimePosition/0/5/2호선
하지만 결과적으로 아래와 같은 주소로 요청했다.
결과적으로 [2호선 -> 2%ED%98%B8%EC%84%A0] 로 인코딩되는 결과가 발생했다.
이를 방지하기 위해,
@Query 또는 @Path문에서 encoded 를 true로 설정하는 방법이었다.
fun getResponse(@Path("subwayNm", encoded = true) subwayNm: String): Call<Seoul>
하지만, 이 방법으로도 해결을 하지 못했다.
찾아보니 100% 해결되는 방법이 아니라고 했다. (나는 10번 시도 10번 실패.. )
그래서 구글링을 통해 찾아낸 방법은 @Url을 이용하여 동적 Url 사용하는 것이었다.
@GET
fun getInfo(@Url url : String) : Call<Seoul>
정상적으로 받아와졌다!!.

'안드로이드 > KOTLIN' 카테고리의 다른 글
[Fragment] Bundle에 객체를 전달하기 (0) | 2023.03.23 |
---|---|
[Parcelize] intent에 Data class를 넣어서 전달하기 (0) | 2023.03.06 |
[Jitpack] 사용하기 (0) | 2023.01.17 |
[ANDRIOID - KOTLIN] runOnUiThread - 작업 스레드에서 UI 업데이트 요청하기 (0) | 2022.09.30 |
Retrofit2 (0) | 2022.07.20 |