👋 你好,欢迎来到我的博客!我是【菜鸟不学编程】
   我是一个正在奋斗中的职场码农,步入职场多年,正在从“小码农”慢慢成长为有深度、有思考的技术人。在这条不断进阶的路上,我决定记录下自己的学习与成长过程,也希望通过博客结识更多志同道合的朋友。
  
  🛠️ 主要方向包括 Java 基础、Spring 全家桶、数据库优化、项目实战等,也会分享一些踩坑经历与面试复盘,希望能为还在迷茫中的你提供一些参考。
  💡 我相信:写作是一种思考的过程,分享是一种进步的方式。
  
   如果你和我一样热爱技术、热爱成长,欢迎关注我,一起交流进步!

前言

在现代应用程序中,网络请求是常见的需求,特别是与远程服务器进行数据交换,或者调用 RESTful API 获取数据。鸿蒙操作系统提供了灵活的网络请求支持,使得开发者能够便捷地实现 API 调用和数据交换。

本篇文章将介绍如何在鸿蒙中进行网络请求,如何使用 HttpClient 发起 API 请求,以及如何处理请求结果和异常。


如何在鸿蒙中进行网络请求

在鸿蒙中,网络请求通常使用 HttpClient 类来完成。HttpClient 提供了一种简单的方式来执行 HTTP 请求,并且支持常见的 HTTP 方法,如 GET、POST、PUT、DELETE 等。通过它,我们可以与 RESTful API 进行交互,发送请求并获取响应。

鸿蒙的网络请求通常包括以下几个步骤:

  1. 创建 HttpClient 实例:用于发送 HTTP 请求。
  2. 构建请求:设置请求的 URL、方法(GET、POST 等)、请求头等。
  3. 发送请求并获取响应:执行请求并获取响应结果。
  4. 处理结果与异常:处理 HTTP 响应结果,处理异常或错误。

使用 HttpClient 发起 API 请求

在鸿蒙中,HttpClient 类支持同步和异步请求。常用的 HttpClient 类和方法包括:

  • HttpClient:发起 HTTP 请求的客户端类。
  • HttpRequest:构建 HTTP 请求的类。
  • HttpResponse:表示 HTTP 响应的类。
1. 使用 HttpClient 发起 GET 请求

下面是使用 HttpClient 发起一个简单的 GET 请求,获取数据并处理响应的示例:

import ohos.net.http.HttpClient;
import ohos.net.http.HttpRequest;
import ohos.net.http.HttpResponse;
import ohos.net.http.HttpMethod;
import ohos.utils.system.SystemProperties;
import ohos.app.Context;

public class NetworkRequestExample {
    private static final String API_URL = "https://api.example.com/data";

    public void sendGetRequest() {
        // 创建 HttpClient 实例
        HttpClient client = HttpClient.create();
        
        // 创建 GET 请求
        HttpRequest request = new HttpRequest(API_URL, HttpMethod.GET);
        
        try {
            // 发送请求并获取响应
            HttpResponse response = client.sendRequest(request);
            
            // 获取响应内容
            String responseBody = response.getResponseBodyString();
            System.out.println("Response: " + responseBody);
            
            // 获取响应码
            int statusCode = response.getStatusCode();
            System.out.println("Status Code: " + statusCode);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            // 关闭 HttpClient 实例
            client.close();
        }
    }
}

在这段代码中:

  • HttpClient.create() 创建一个 HttpClient 实例。
  • HttpRequest 构造了一个 GET 请求,指定了 URL 和请求方法。
  • client.sendRequest(request) 发送请求并获取响应。
  • response.getResponseBodyString() 获取响应体的内容。
2. 使用 HttpClient 发起 POST 请求

POST 请求通常用于向服务器提交数据。在鸿蒙中,可以通过 HttpMethod.POST 来构建 POST 请求,并通过 HttpRequest 设置请求体。

import ohos.net.http.HttpClient;
import ohos.net.http.HttpRequest;
import ohos.net.http.HttpResponse;
import ohos.net.http.HttpMethod;
import ohos.utils.system.SystemProperties;
import ohos.app.Context;

public class NetworkRequestExample {
    private static final String API_URL = "https://api.example.com/submit";

    public void sendPostRequest(String jsonData) {
        // 创建 HttpClient 实例
        HttpClient client = HttpClient.create();
        
        // 创建 POST 请求
        HttpRequest request = new HttpRequest(API_URL, HttpMethod.POST);
        request.setRequestBody(jsonData);
        request.setHeader("Content-Type", "application/json");
        
        try {
            // 发送请求并获取响应
            HttpResponse response = client.sendRequest(request);
            
            // 获取响应内容
            String responseBody = response.getResponseBodyString();
            System.out.println("Response: " + responseBody);
            
            // 获取响应码
            int statusCode = response.getStatusCode();
            System.out.println("Status Code: " + statusCode);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            // 关闭 HttpClient 实例
            client.close();
        }
    }
}

在这个例子中:

  • request.setRequestBody(jsonData) 设置了 POST 请求的请求体。
  • request.setHeader("Content-Type", "application/json") 设置了请求头,表示请求体是 JSON 格式。
  • client.sendRequest(request) 发送 POST 请求,并获取响应。

处理请求结果与异常

在实际的网络请求中,我们通常需要处理可能出现的异常,例如网络错误、服务器错误等。鸿蒙中的 HttpClient 提供了多种方式来处理请求结果和异常。

1. 检查响应码

HTTP 响应码通常用于判断请求是否成功,常见的响应码包括:

  • 200 OK:请求成功。
  • 400 Bad Request:请求格式错误。
  • 500 Internal Server Error:服务器错误。

你可以根据响应码来进行不同的处理:

int statusCode = response.getStatusCode();
if (statusCode == 200) {
    // 请求成功,处理响应数据
    String responseBody = response.getResponseBodyString();
    System.out.println("Response Body: " + responseBody);
} else {
    // 请求失败,处理错误
    System.out.println("Error: " + statusCode);
}
2. 异常处理

在进行网络请求时,可能会遇到一些异常,例如网络不可达、请求超时等。可以使用 try-catch 块捕获这些异常,并进行相应处理。

try {
    HttpResponse response = client.sendRequest(request);
    // 处理响应
} catch (Exception e) {
    e.printStackTrace();
    System.out.println("Network error occurred: " + e.getMessage());
}

代码示例:实现一个简单的 API 请求并处理结果

以下是一个完整的示例,展示如何在鸿蒙中使用 HttpClient 发起网络请求,处理响应并处理异常:

import ohos.net.http.HttpClient;
import ohos.net.http.HttpRequest;
import ohos.net.http.HttpResponse;
import ohos.net.http.HttpMethod;
import ohos.app.Context;

public class ApiRequestExample {
    private static final String API_URL = "https://api.example.com/data";

    public void makeApiRequest() {
        HttpClient client = HttpClient.create();
        
        // 创建 GET 请求
        HttpRequest request = new HttpRequest(API_URL, HttpMethod.GET);
        
        try {
            // 发送请求并获取响应
            HttpResponse response = client.sendRequest(request);
            
            // 获取响应内容
            int statusCode = response.getStatusCode();
            String responseBody = response.getResponseBodyString();
            
            // 判断响应码
            if (statusCode == 200) {
                System.out.println("Request successful. Response: " + responseBody);
            } else {
                System.out.println("Error: HTTP " + statusCode);
            }
        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("Network error: " + e.getMessage());
        } finally {
            // 关闭 HttpClient 实例
            client.close();
        }
    }
}

在这个示例中:

  • 我们发起了一个 GET 请求,获取远程服务器的数据。
  • 我们检查了响应的状态码,并根据状态码决定如何处理响应。
  • 在遇到异常时,我们捕获并打印异常信息。

总结

在鸿蒙中,使用 HttpClient 进行网络请求非常方便,可以通过 HttpRequest 构建不同类型的请求(如 GET、POST)并发送。响应可以通过 HttpResponse 对象进行处理,获取响应内容和状态码。异常处理也是开发网络请求时必须注意的部分,确保应用在网络错误或其他问题发生时能够正常处理。

通过鸿蒙提供的网络请求 API,开发者可以轻松与 RESTful API 进行交互,获取远程数据并处理响应结果。在实际开发中,适当的异常处理和响应结果检查能确保应用的健壮性和稳定性。

📝 写在最后

如果你觉得这篇文章对你有帮助,或者有任何想法、建议,欢迎在评论区留言交流!你的每一个点赞 👍、收藏 ⭐、关注 ❤️,都是我持续更新的最大动力!

我是一个在代码世界里不断摸索的小码农,愿我们都能在成长的路上越走越远,越学越强!

感谢你的阅读,我们下篇文章再见~👋

✍️ 作者:某个被流“治愈”过的 Java 老兵
📅 日期:2025-07-25
🧵 本文原创,转载请注明出处。

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐