java如何调用api接口(java调用api接口示例)

在 Java 中,调用 API 接口通常涉及向特定的 URL 发送 HTTP 请求,然后解析返回的 JSON 或 XML 数据。

要实现这个目标,您可以使用 Java 标准库中的 HttpURLConnection 类或第三方库,如 Apache HttpClient 或 OkHttp。

这里我们将使用 HttpURLConnection 类演示如何调用一个简单的 API 接口。

以下示例展示了如何使用 HttpURLConnection 发送 GET 请求以及处理 JSON 响应。

图片[1]-java如何调用api接口(java调用api接口示例)-不念博客

假设我们需要调用一个简单的天气 API,URL 为 https://api.example.com/weather?city=beijing

1、首先,导入必要的库

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import javax.json.Json;
import javax.json.JsonObject;
import javax.json.JsonReader;

2、创建一个方法,用于发送 GET 请求并获取 API 响应

public static JsonObject getWeatherData(String city) throws IOException {
    String apiURL = "https://api.example.com/weather?city=" + city;

    URL url = new URL(apiURL);
    HttpURLConnection connection = (HttpURLConnection) url.openConnection();

    connection.setRequestMethod("GET");
    connection.setRequestProperty("Accept", "application/json");

    int responseCode = connection.getResponseCode();
    if (responseCode != HttpURLConnection.HTTP_OK) {
        throw new IOException("Failed to get data from API. HTTP Code: " + responseCode);
    }

    try (BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
         JsonReader jsonReader = Json.createReader(reader)) {

        JsonObject responseObject = jsonReader.readObject();
        return responseObject;
    } finally {
        connection.disconnect();
    }
}

3、调用该方法并处理返回的 JSON 数据

public static void main(String[] args) {
    try {
        JsonObject weatherData = getWeatherData("beijing");
        System.out.println("Weather data: " + weatherData.toString());
    } catch (IOException e) {
        e.printStackTrace();
    }
}

注意:示例代码中的 URL 仅作为示例,请替换为实际的 API URL。

同时,处理 JSON 数据的部分使用了 javax.json 库,请确保将相关库添加到项目的依赖中。

在实际应用中,您可能需要根据 API 文档解析 JSON 数据以提取所需信息。

© 版权声明
THE END
喜欢就支持一下吧
点赞51赞赏 分享
评论 抢沙发
头像
欢迎光临不念博客,留下您的想法和建议,祝您有愉快的一天~
提交
头像

昵称

取消
昵称代码图片

    暂无评论内容