Simple&Natural
[Android] Retrofit Field 사용 시 Encoding 문제 본문
728x90
Field Parameter 에 encoded 옵션을 주지 않아서 생기는 문제.
깨지는 값을 url디코더로 찍어보면 원래 값이 잘 복원되어 나옴.
@FormUrlEncoded 를 사용한 POST 요청
interface TestApiService {
@Headers("content-type: text/plain; charset=utf8")
@FormUrlEncoded
@POST("/")
suspend fun postToLocal(
@Field("name") name: String,
@Field("age") age: String
): String
}
결과
name=%EC%B2%A0%EC%88%98&age=13
수정 후
@Field("name", encoded=true) name: String,
@Field("age") age: String
결과
name=철수&age=13
@Body 로 객체를 보내면 따로 Encoding 없이 값이 잘 출력됨.
728x90
'안드로이드(Android) > 기타' 카테고리의 다른 글
[Android] Admob 오류 종류 (0) | 2020.10.09 |
---|---|
[Android] 애드몹(Admob) 연동하기 (0) | 2020.10.08 |
[Android] Retrofit + Moshi 를 이용한 Json 데이터 받아오기 (0) | 2020.10.07 |
BottomNavigationView + Hiding On Scroll (0) | 2020.09.28 |
안드로이드에서 Coroutine과 Retrofit 및 Room을 함께 사용 시 주의사항 (1) | 2020.08.25 |