개발
[안드로이드 코틀린] java.net.UnknownServiceException: CLEARTEXT communication to "XXXXXX" not permitted by network security policy
kks950115
2024. 1. 26. 14:28
728x90
java.net.UnknownServiceException: CLEARTEXT communication to apis.data.go.kr not permitted by network security policy
api 예제 코드를 복붙하고 실행해보는데 저런 에러가 떴다.
컴파일러에서는 문제없다고 뜨는데 뭐가 문젠가 해서 저 경고를 구글에 검색해보니 https 통신을 강제하기 때문이라고 한다.
base url을 보니 http로 되어있었다. 근데 분명 해당 api에는 http로 되어있던데.... https도 지원하는건가?
해당 url을 인터넷 주소창에 입력하면 http, https 둘 다 뜨긴한다.
그래서 baseUrl()에 들어갈 주소에 https로 바꿔적으니 문제없이 돌아갔다.
둘다 지원하기 때문에 되는 거 같은데 만약 http만 지원하면 아래처럼 하면 된다.
res/xml/이름.xml
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">api.xxx.com</domain>
</domain-config>
</network-security-config>
요렇게 코드를 작성하고 파일은 임의로 한다.
<application
...
android:networkSecurityConfig="@xml/이름">
manifest 파일에 networkSecurityConfig 파일로 지정해주면 된다고 한다.
아니면
<application
...
android:usesCleartextTraffic="true">
usesCleartextTraffic =true를 추가해주는 방법도 있다고 한다.
728x90
반응형