JAVAGet请求 required

引言

在网络开发中,HTTP请求是非常常见的一种交互方式。GET请求是HTTP协议中最常用的一种请求方式之一。在Java语言中,我们可以使用一些类库来发送GET请求,并接收服务器返回的数据。本文将介绍如何在Java中发送GET请求,并获取服务器返回的数据。

GET请求的概念

GET请求是HTTP协议中的一种请求方式,用于向服务器请求获取资源。GET请求通过URL传递参数,可以在URL中添加参数,也可以将参数放在请求的Body中。GET请求常用于获取数据,不对服务器端的数据做任何修改操作。

Java中发送GET请求的方法

Java中可以使用一些类库来发送GET请求,比如使用java.net.URL类,也可以使用一些第三方类库,比如Apache HttpClient。

使用java.net.URL类发送GET请求

使用java.net.URL类可以很方便地发送GET请求。下面是一个使用java.net.URL类发送GET请求的示例代码:

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

public class GetRequestExample {
    public static void main(String[] args) {
        try {
            URL url = new URL("
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            conn.setRequestMethod("GET");
            conn.setRequestProperty("Accept", "application/json");

            if (conn.getResponseCode() != 200) {
                throw new RuntimeException("Failed : HTTP error code : " + conn.getResponseCode());
            }

            BufferedReader br = new BufferedReader(new InputStreamReader((conn.getInputStream())));

            String output;
            while ((output = br.readLine()) != null) {
                System.out.println(output);
            }

            conn.disconnect();

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

上面的代码使用了java.net.URL类创建了一个URL对象,然后通过该对象打开一个连接,并设置请求的方法为GET。接下来,我们可以设置请求头部信息,比如设置接收的数据类型为JSON。如果服务器返回的状态码不是200,我们可以抛出一个RuntimeException。最后,我们可以使用java.io.BufferedReader读取服务器返回的数据,并输出到控制台。

使用Apache HttpClient发送GET请求

除了使用java.net.URL类,我们还可以使用Apache HttpClient来发送GET请求。下面是一个使用Apache HttpClient发送GET请求的示例代码:

import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.HttpClientBuilder;
import java.io.BufferedReader;
import java.io.InputStreamReader;

public class GetRequestExample {
    public static void main(String[] args) {
        try {
            HttpClient client = HttpClientBuilder.create().build();
            HttpGet request = new HttpGet("
            request.addHeader("Accept", "application/json");
            HttpResponse response = client.execute(request);

            if (response.getStatusLine().getStatusCode() != 200) {
                throw new RuntimeException("Failed : HTTP error code : " + response.getStatusLine().getStatusCode());
            }

            BufferedReader br = new BufferedReader(new InputStreamReader((response.getEntity().getContent())));

            String output;
            while ((output = br.readLine()) != null) {
                System.out.println(output);
            }

            client.getConnectionManager().shutdown();

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

上面的代码使用了Apache HttpClient类库,创建了一个HttpClient对象,并使用HttpGet类创建了一个GET请求对象。然后,我们可以设置请求头部信息,比如设置接收的数据类型为JSON。如果服务器返回的状态码不是200,我们也可以抛出一个RuntimeException。最后,我们可以使用java.io.BufferedReader读取服务器返回的数据,并输出到控制台。

类图

下面是本文中使用的类的类图:

classDiagram
    class URL {
        {static} URL(String spec)
    }
    class HttpURLConnection {
        {static} HttpURLConnection openConnection(URL url)
        {static} int getResponseCode()
        {static} InputStream getInputStream()
        void setRequestMethod(String method)
        void setRequestProperty(String key, String value)
        void disconnect()
    }
    class HttpClient {
        {static} HttpClient create()
    }
    class HttpGet {
        {static} HttpGet(String uri)
        void addHeader(String name, String value)
    }
    class HttpResponse
    class BufferedReader {
        {static} BufferedReader(InputStreamReader reader)
        String readLine()
    }
    class InputStreamReader {
        {static} InputStreamReader(InputStream in)
    }
    URL <|-- HttpURLConnection
    HttpClient <|-- HttpResponse
    HttpGet <|-- HttpResponse
    InputStreamReader <|-- BufferedReader

上面的类