Java HTTP GET请求如何JSON传递请求参数

在Java中进行HTTP GET请求,可以使用Java的java.net.HttpURLConnection类来实现。当需要在GET请求中传递JSON格式的请求参数时,我们可以通过将JSON数据作为URL的查询参数来实现。

下面是一个示例代码,演示了如何使用Java进行HTTP GET请求,并将JSON数据作为请求参数传递。

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;

public class HttpGetJsonRequest {

    public static void main(String[] args) {
        try {
            String url = "
            String jsonParam = "{\"key1\":\"value1\", \"key2\":\"value2\"}";

            // 将JSON参数编码并拼接到URL中
            String encodedParam = URLEncoder.encode(jsonParam, "UTF-8");
            url += "?json=" + encodedParam;

            // 创建URL对象
            URL apiUrl = new URL(url);

            // 创建HttpURLConnection对象,并设置请求方法为GET
            HttpURLConnection connection = (HttpURLConnection) apiUrl.openConnection();
            connection.setRequestMethod("GET");

            // 发起请求并获取响应
            int responseCode = connection.getResponseCode();
            if (responseCode == HttpURLConnection.HTTP_OK) {
                // 读取响应数据
                BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
                String line;
                StringBuilder response = new StringBuilder();
                while ((line = reader.readLine()) != null) {
                    response.append(line);
                }
                reader.close();

                // 处理响应数据
                System.out.println("Response: " + response.toString());
            } else {
                System.out.println("Request failed. Response code: " + responseCode);
            }

            // 关闭连接
            connection.disconnect();

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

在上面的示例代码中,首先定义了一个URL和一个JSON参数。然后使用URLEncoder.encode()方法对JSON参数进行编码,并将其拼接到URL的查询参数中。然后创建了一个URL对象,然后创建了一个HttpURLConnection对象,并将请求方法设置为GET。最后发起请求,读取响应数据,并对响应数据进行处理。

请注意,上述示例代码中的URL和JSON参数仅作为示例,实际应用中需要根据实际情况进行修改。

流程图

下面是一个使用mermaid语法绘制的流程图,表示了上述示例代码的执行流程。

flowchart TD
    subgraph 请求过程
    A[定义URL和JSON参数]
    B[编码JSON参数并拼接到URL]
    C[创建URL对象]
    D[创建HttpURLConnection对象]
    E[设置请求方法为GET]
    F[发起请求并获取响应]
    G[读取响应数据]
    H[处理响应数据]
    I[关闭连接]
    end

    A-->B-->C-->D-->E-->F-->G-->H-->I
    F-->|请求失败|J[输出请求失败信息]

上述流程图清晰地展示了整个HTTP GET请求的过程,包括定义URL和JSON参数、编码JSON参数并拼接到URL、创建URL和HttpURLConnection对象、发起请求并获取响应、读取响应数据、处理响应数据、关闭连接等步骤。

希望上述内容对你有所帮助!