source

Android (9) Pie에서 모든 네트워크 연결 유형을 HTTP 및 HTTPS로 허용하는 방법

factcode 2022. 8. 14. 11:55
반응형

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.xmlfilename을 클릭합니다.

9 9 Pie를 .networkSecurityConfigapplication을 사용하다

<?xml version="1.0" encoding="utf-8"?>
<manifest ... >
    <application android:networkSecurityConfig="@xml/network_security_config">




    </application>
</manifest>

그 your your your thenxml는 이제 해야 합니다.network_security_configManifest에서 이름을 붙인 방법과 마찬가지로 파일 내용도 암호화 없이 모든 요청을 사용할 수 있도록 다음과 같아야 합니다.

<?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>

이것이 당신에게 도움이 되길 바랍니다.

간단한 방법

usesCleartextTrafficAndroidManifest.xml로 전송

<application
...
android:usesCleartextTraffic="true"
...>

앱이 클리어 텍스트 HTTP와 같은 클리어 텍스트 네트워크 트래픽을 사용할지 여부를 나타냅니다.API 수준 27 이하를 대상으로 하는 앱의 기본값은 "true"입니다.API 수준 28 이상을 대상으로 하는 앱은 기본적으로 "false"로 설정됩니다.

★★★의 React Nativexml 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

반응형