Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- intArray
- android studio cloud
- 군대에서 안드로이드 개발
- 군대 개발
- Encoding
- okhttp
- Status Bar
- REST API
- Rest
- Compose
- kotlin
- 군대개발
- 군대 github
- android 오류
- 군대 깃허브
- 오류
- 디버깅 오류
- Di
- 네트워크
- log
- apollo
- Android
- BindingAdapter
- RETROFIT
- Log잘림
- multipart
- 뷰 겹침
- DataBinding
- text
- interface
Archives
- Today
- Total
KDY
Android Okhttp Logging Multipart 무시하기 본문
이번에 Multipart를 사용한 기능을 만들면서 이미지 파일을 보낼 때 나오는 로그가 너무 길어져서
Log가 잘리는 현상을 겪었습니다.
이런식으로 깨진 Log가 나오면서 이정 요청 메시지까지 모두 잘려 불편한 상황이 나와서 이에 대한 해결법을 이번에 포스팅해보겠습니다.
해결법으로는 2가지의 방법이 있는데 하나는 Log를 찍는 Byte를 늘리는 거고 두 번째는 Interceptor를 사용하여 Multipart요청 Log를 무시하는 것입니다.
이번에 제가 사용할 방법은 두 번째 방법입니다.
Headers("multipart: true")
fun okHttpClient(): OkHttpClient {
val builder = OkHttpClient.Builder()
val logger = httpLogger(builder)
return builder
//서버로부터의 응답까지의 시간이 읽기 시간 초과보다 크면 요청 실패로 판단한다.
.readTimeout(10, TimeUnit.SECONDS)
//서버로 요청을 시작한 후 15초가 지날 때 까지 데이터가 안오면 에러로 판단한다.
.connectTimeout(10, TimeUnit.SECONDS)
// 얼마나 빨리 서버로 데이터를 받을 수 있는지 판단한다.
.writeTimeout(15, TimeUnit.SECONDS)
//Header 추가
.addInterceptor(MyInterceptor())
//서버로 부터 받아온 데이터 log 찍기
.addInterceptor(logger)
.build()
}
private fun httpLogger(builder: OkHttpClient.Builder) : HttpLoggingInterceptor {
val logger = HttpLoggingInterceptor()
//Multipart response Log 메세지 제외
builder.addInterceptor {
val original : Request = it.request()
val request : Request = original.newBuilder().build()
val hasMultipart = request.headers.names().contains("multipart")
//None으로 할 시 Request요청도 안보이므로 HEADERS로 바꿔 Request, Response 메세지만 본다.
logger.level = (if(hasMultipart) HttpLoggingInterceptor.Level.HEADERS else HttpLoggingInterceptor.Level.BODY)
return@addInterceptor it.proceed(request)
}.build()
return logger
}
위와 같이 코드를 변경해 주시면 됩니다!
처음과 같이 깨진 문자는 제거하고 PUT Request요청과 End 요청만 나오는 걸 확인할 수 있습니다.
Reference
'Android' 카테고리의 다른 글
Android Compose Text (0) | 2025.05.23 |
---|---|
군대에서 안드로이드 개발하기 (0) | 2025.05.21 |
Android BindingAdapter (0) | 2022.05.10 |
Android DataBinding (0) | 2022.05.02 |
Android dp와sp의 차이 (0) | 2022.04.29 |