如何在Android Studio中允许HTTP链接

作为一名经验丰富的开发者,我将指导你如何在Android Studio中允许HTTP链接。下面是整个过程的步骤概览:

步骤 描述
第一步 在AndroidManifest.xml文件中添加网络权限
第二步 创建一个网络请求类
第三步 在AndroidManifest.xml文件中允许明文流量
第四步 在应用程序的清单文件中添加网络访问策略
第五步 在应用程序的清单文件中添加允许所有域名的网络访问策略

接下来,我将逐步告诉你每个步骤需要做什么,并提供相应的代码示例。

第一步:在AndroidManifest.xml文件中添加网络权限

为了允许应用程序进行网络请求,我们需要在AndroidManifest.xml文件中添加网络权限。找到该文件并添加以下代码:

<uses-permission android:name="android.permission.INTERNET" />

这将为你的应用程序授予与网络通信相关的权限。

第二步:创建一个网络请求类

为了进行网络请求,我们需要创建一个网络请求类。可以在项目中创建一个名为"NetworkRequest"的Java类,并在其中添加以下代码:

public class NetworkRequest {
    private static final String BASE_URL = "

    public static String makeRequest(String endpoint) throws IOException {
        OkHttpClient client = new OkHttpClient();
        Request request = new Request.Builder()
                .url(BASE_URL + endpoint)
                .build();

        Response response = client.newCall(request).execute();
        return response.body().string();
    }
}

上述代码使用了OkHttp库来进行网络请求。你需要在项目的build.gradle文件中添加OkHttp的依赖。

第三步:在AndroidManifest.xml文件中允许明文流量

在某些情况下,你可能需要允许明文流量(非加密的HTTP请求)。通过在AndroidManifest.xml文件中添加以下代码,你可以允许明文流量:

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

第四步:在应用程序的清单文件中添加网络访问策略

如果你的应用程序目标版本是Android 9.0(API级别28)或更高版本,你需要在应用程序的清单文件中添加网络访问策略。找到清单文件,并在<application>标签内添加以下代码:

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

然后,在res目录下创建一个名为"xml"的文件夹,并在该文件夹中创建一个名为"network_security_config.xml"的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>

这将配置网络安全,允许明文流量和信任系统证书。

第五步:在应用程序的清单文件中添加允许所有域名的网络访问策略

在某些情况下,你可能需要允许访问所有域名。为此,你需要在应用程序的清单文件中添加以下代码:

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

在"network_security_config.xml"文件中,将<base-config>标签的cleartextTrafficPermitted属性的值设为"true",如下所示:

<base-config cleartextTrafficPermitted="true">
    ...
</base-config>

以上是在Android Studio中允许HTTP链接的完整流程。通过按照上述步骤进行操作,你的应用程序将能够进行HTTP请求。

序列图

下面是一个使用mermaid语法表示的序列图,展示了网络请求的过程:

sequenceDiagram
    participant Client
    participant Server

    Client->>Server: 发送HTTP