본문 바로가기
Language/Android

[Android] 안드로이드_Pie 버전에서 org.apache.http.legacy 사용하기

by 썸머워즈 2020. 1. 3.
반응형


안드로이드 API 28 (Android 9.0) 버전에서 org.apache.http.legacy 사용하기



org.apache.http.legacy 를 사용하다가 버전을 올릴경우 안되는 상황이 발생하는데


해당 라이브러리를 사용할 수 있게 하는 방법에 대해 알아보자



Android 8.0 이하에서는 단순하게 app > build.gradle 에서


아래와 같이 라이브러리를 선언만 해주면 사용이 가능했으나 


API를 28로 올릴경우 안되는 상황이 발생한다.


useLibrary 'org.apache.http.legacy'


해당 라이브러리를 그대로 사용하기 위해서 


기존에 선언한 부분은 그대로 두고 새롭게 몇가지만


추가해주면 된다.


우선 


res > xml > network_security_config.xml


해당 폴더에 xml 파일을 하나 생성해준다.



해당 xml파일 안에 다음과 같이 선언해준다.


- network_security_config.xml -

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true">
<trust-anchors>
<certificates src="system" />
</trust-anchors>
</base-config>
</network-security-config>


이제 준비는 끝났으니 해당 xml을 사용하기만 하면 된다.


AndroidManifest.xml에서 


다음과 같이 두개를 선언해주면 된다.


<application> 태그 안에 android:networkSecurityConfig="@xml/network_security_config"


그리고 <application> 이 끝나기 전


<uses-library> 를 사용하여 android:name="org.apache.http.legacy" 를 선언해주자


- AndroidManifest.xml -


<application
...
android:networkSecurityConfig="@xml/network_security_config"
>

<activity ...
...
<uses-library
android:name="org.apache.http.legacy"
android:required="false"
/>

</application>

이제 기존 방식대로 사용이 가능하다.


해당 networkSecurityConfig 관련한 xml은


https://developer.android.com/training/articles/security-config?hl=ko


네트워크 보안 구성으로 해당 developers 사이트에서 상세내용 확인이 가능하다.


반응형


댓글

TOP