阅读(1601) (11)

鸿蒙OS 使用当前网络打开一个URL链接

2020-09-17 10:01:22 更新

场景介绍

应用使用当前的数据网络打开一个 URL 链接。

接口说明

应用使用当前网络打开一个 URL 链接,所使用的接口说明如下。

类名 接口名 功能描述
NetManager getInstance(Context context) 获取网络管理的实例对象。
hasDefaultNet() 查询当前是否有默认可用的数据网络。
getDefaultNet() 获取当前默认的数据网络句柄。
addDefaultNetStatusCallback(NetStatusCallback callback) 获取当前默认的数据网络状态变化。
setAppNet(NetHandle netHandle) 应用绑定该数据网络。
NetHandle openConnection(URL url, Proxy proxy) throws IOException 使用该网络打开一个 URL 链接。

开发步骤

  1. 调用 NetManager.getInstance(Context)获取网络管理的实例对象。

  1. 调用 NetManager.getDefaultNet()获取默认的数据网络。

  1. 调用 NetHandle.openConnection()打开一个 URL。

  1. 通过 URL 链接实例访问网站。

   NetManager netManager = NetManager.getInstance(null);

    
   if (!netManager.hasDefaultNet()) {
       return;
   }
   NetHandle netHandle = netManager.getDefaultNet();

    
   // 可以获取网络状态的变化
   NetStatusCallback callback = new NetStatusCallback() {
       // 重写需要获取的网络状态变化的override函数
   }
   netManager.addDefaultNetStatusCallback(callback);

    
   // 通过openConnection来获取URLConnection
   try {
       HttpURLConnection connection = null;
       String urlString = "https://www.huawei.com/";
       URL url = new URL(urlString);

       
       URLConnection urlConnection = netHandle.openConnection(url,
                   java.net.Proxy.NO_PROXY);
       if (urlConnection instanceof HttpURLConnection) {
           connection = (HttpURLConnection) urlConnection;
       }
       connection.setRequestMethod("GET");
       connection.connect();
       // 之后可进行url的其他操作
   } finally {
       connection.disconnect();
   }