Android (9) Pie에서 모든 네트워크 연결 유형을 HTTP 및 HTTPS로 허용하는 방법
Android 9 Pie부터는 암호화되지 않은 요청은 작동하지 않습니다.디폴트로는 TLS를 사용하는 것이 상정됩니다.여기서 이 기능을 읽을 수 있으므로 HTTPS를 통해서만 요청을 하는 경우 안전합니다.그러나 브라우저와 같은 다른 사이트를 통해 요청을 하는 앱은 어떻습니까?
Android 9 Pie에서 모든 유형의 HTTP 및 HTTPS 연결에 대한 요청을 활성화하려면 어떻게 해야 합니까?
Attribute를 하려면 , 「Attribute」, 「Attribute」, 「Attribute」의 어트리뷰트를 합니다.AndroidManifest.xml
것을 http
'이것'은 다음과 같습니다.
<application android:usesCleartextTraffic="true">
</application>
단, 예를 들어 다른 링크에 대해 몇 가지 설정을 더 하고 싶은 경우http
경우, "Nother domains"를 지정해야 합니다.res/xml/networkSecurityConfig.xml
filename을 클릭합니다.
9 9 Pie를 .networkSecurityConfig
application
을 사용하다
<?xml version="1.0" encoding="utf-8"?>
<manifest ... >
<application android:networkSecurityConfig="@xml/network_security_config">
</application>
</manifest>
그 your your your thenxml
는 이제 해야 합니다.network_security_config
Manifest에서 이름을 붙인 방법과 마찬가지로 파일 내용도 암호화 없이 모든 요청을 사용할 수 있도록 다음과 같아야 합니다.
<?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>
거기서부터 당신은 가도 돼이제 앱이 모든 유형의 연결을 요청합니다.이 항목에 대한 자세한 내용은 여기를 참조하십시오.
이 문제에 직면한 사용자 또는 양쪽 모두를 위한 완전 기능하는 솔루션에는 이 기능이 추가되어 있습니다.android:usesCleartextTraffic="true"
다음과 같이 AndroidManifest.xml 파일에 저장됩니다.
android:usesCleartextTraffic="true"
tools:ignore="GoogleAppIndexingWarning">
<uses-library
android:name="org.apache.http.legacy"
android:required="false" />
<application>
</application>
을 사용하다
<application
android:name=".MainApplication"
android:label="@string/app_name"
android:icon="@mipmap/ic_launcher"
android:allowBackup="false"
android:theme="@style/AppTheme"
android:usesCleartextTraffic="true"
tools:ignore="GoogleAppIndexingWarning">
<uses-library
android:name="org.apache.http.legacy"
android:required="false" />
<activity
android:name=".MainActivity"
android:label="@string/app_name"/>
</application>
있습니다.android:usesCleartextTraffic="true"
AndroidManifest.xml
android:usesCleartextTraffic="true"
의 ★★★★★★★★★★★★★★★★★.AndroidManifest.xml
가 꼭 닮다
<?xml version="1.0" encoding="utf-8"?>
<manifest package="com.dww.drmanar">
<application
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:usesCleartextTraffic="true"
android:theme="@style/AppTheme"
tools:targetApi="m">
<activity
android:name=".activity.SplashActivity"
android:theme="@style/FullscreenTheme">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
이것이 당신에게 도움이 되길 바랍니다.
간단한 방법
usesCleartextTraffic
AndroidManifest.xml로 전송
<application
...
android:usesCleartextTraffic="true"
...>
앱이 클리어 텍스트 HTTP와 같은 클리어 텍스트 네트워크 트래픽을 사용할지 여부를 나타냅니다.API 수준 27 이하를 대상으로 하는 앱의 기본값은 "true"입니다.API 수준 28 이상을 대상으로 하는 앱은 기본적으로 "false"로 설정됩니다.
★★★의 React Native
중 xml block
@@Xenolion으로 react_native_config.xml
치치에 <project>/android/app/src/debug/res/xml
다음과 같은 스니펫입니다.
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="false">localhost</domain>
<domain includeSubdomains="false">10.0.2.2</domain>
<domain includeSubdomains="false">10.0.3.2</domain>
</domain-config>
<base-config cleartextTrafficPermitted="true">
<trust-anchors>
<certificates src="system" />
</trust-anchors>
</base-config>
</network-security-config>
★★★★★★★★★★를 설정해 주세요.usesCleartextTraffic
에 있는 AndroidManifest.xml
【Android】【안드로이드】★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★」
<application
android:usesCleartextTraffic="true"
.
.
.>
같은 문제가 발생하여 보안 설정에 @Xenolion 답변과 같이 다른 태그가 있는 것을 알 수 있습니다.
<network-security-config>
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">localhost</domain>
</domain-config>
</network-security-config>
따라서 "base-config"의 태그 "domain-config"를 변경하여 다음과 같이 동작합니다.
<network-security-config>
<base-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">localhost</domain>
</base-config>
</network-security-config>
이건 나한테 효과가 있었어
다음 xml 파일 추가:andriod/app/src/main/res/xml/network_security_config.xml
network_security_config.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>
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">your_domain1</domain>
</domain-config>
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">your_domain2</domain>
</domain-config>
</network-security-config>
이 코드를 AndroidMenifest.xml에 추가합니다.
<application
...
android:usesCleartextTraffic="true"
android:networkSecurityConfig="@xml/network_security_config"
...
>
<!-- for http support-->
<uses-library android:name="org.apache.http.legacy" android:required="false"/>
...
</application>
HTTP Fix:https://medium.com/@son.rommer/fix-cleartext-traffic-error-in-fix-9-pie-2f4e9e2235e6를 통해 clearText를 전송하는지 여부를 확인할 수 있습니다.
또는
Apache HTTP client decreference (From Google ) : Android 6.0에서는 Apache HTTP 클라이언트에 대한 지원이 삭제되었습니다.Android 9부터는 해당 라이브러리가 bootclasspath에서 제거되어 기본적으로 앱에서 사용할 수 없습니다.Apache HTTP 클라이언트를 계속 사용하려면 Android 9 이상을 대상으로 하는 앱에서 AndroidManifest.xml에 다음을 추가할 수 있습니다.
출처: https://developer.android.com/about/versions/pie/android-9.0-changes-28
언급URL : https://stackoverflow.com/questions/51902629/how-to-allow-all-network-connection-types-http-and-https-in-android-9-pie
'source' 카테고리의 다른 글
하나의 FindBugs 경고를 무시할 수 있는 방법이 있습니까? (0) | 2022.08.14 |
---|---|
커스텀 컴포넌트의 이벤트를 흐리게 하기 위해 eventListener를 추가하시겠습니까? (0) | 2022.08.14 |
Vue 및 Vuex: 뷰 변경에 따라 상태 업데이트 (0) | 2022.08.14 |
L 또는 UL을 긴 값으로 명시적으로 선언하는 이유는 무엇입니까? (0) | 2022.08.14 |
vue/ssr에서 vuex-persisted state를 구현하는 방법 (0) | 2022.08.14 |