欢迎访问宙启技术站
智能推送

Java函数库——HTTP通信的示例代码

发布时间:2023-06-13 03:25:36

在Java中进行HTTP通信可以通过使用Java内置的java.net包或使用第三方库,比如Apache HttpClient、OkHttp等。本文将介绍如何使用java.net包进行HTTP通信。

1. 发送GET请求

发送GET请求可以使用Java的HttpURLConnection类。以下是一个简单的示例:

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

public class HttpGetDemo {
    public static void main(String[] args) throws Exception {

        String url = "https://www.example.com/api/v1/users";

        URL obj = new URL(url);
        HttpURLConnection con = (HttpURLConnection) obj.openConnection();

        // 设置请求方式为GET
        con.setRequestMethod("GET");

        BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
        String inputLine;
        StringBuilder response = new StringBuilder();

        while ((inputLine = in.readLine()) != null) {
            response.append(inputLine);
        }
        in.close();

        // 打印响应内容
        System.out.println(response.toString());
    }
}

2. 发送POST请求

发送POST请求也可以使用HttpURLConnection类。以下是一个简单的示例:

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

public class HttpPostDemo {
    public static void main(String[] args) throws Exception {

        String url = "https://www.example.com/api/v1/users";

        URL obj = new URL(url);
        HttpURLConnection con = (HttpURLConnection) obj.openConnection();

        // 设置请求方式为POST
        con.setRequestMethod("POST");

        // 设置请求头
        con.setRequestProperty("User-Agent", "Mozilla/5.0");

        // 设置请求参数
        String urlParameters = "username=test&password=test123";

        // 发送POST请求
        con.setDoOutput(true);
        DataOutputStream wr = new DataOutputStream(con.getOutputStream());
        wr.writeBytes(urlParameters);
        wr.flush();
        wr.close();

        BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
        String inputLine;
        StringBuilder response = new StringBuilder();

        while ((inputLine = in.readLine()) != null) {
            response.append(inputLine);
        }
        in.close();

        // 打印响应内容
        System.out.println(response.toString());
    }
}

3. 发送PUT请求

发送PUT请求也可以使用HttpURLConnection类。以下是一个简单的示例:

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

public class HttpPutDemo {
    public static void main(String[] args) throws Exception {

        String url = "https://www.example.com/api/v1/users/1";

        URL obj = new URL(url);
        HttpURLConnection con = (HttpURLConnection) obj.openConnection();

        // 设置请求方式为PUT
        con.setRequestMethod("PUT");

        // 设置请求头
        con.setRequestProperty("User-Agent", "Mozilla/5.0");

        // 设置请求参数
        String urlParameters = "username=test&password=test123";

        // 发送PUT请求
        con.setDoOutput(true);
        DataOutputStream wr = new DataOutputStream(con.getOutputStream());
        wr.writeBytes(urlParameters);
        wr.flush();
        wr.close();

        BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
        String inputLine;
        StringBuilder response = new StringBuilder();

        while ((inputLine = in.readLine()) != null) {
            response.append(inputLine);
        }
        in.close();

        // 打印响应内容
        System.out.println(response.toString());
    }
}

4. 发送DELETE请求

发送DELETE请求也可以使用HttpURLConnection类。以下是一个简单的示例:

import java.net.HttpURLConnection;
import java.net.URL;

public class HttpDeleteDemo {
    public static void main(String[] args) throws Exception {

        String url = "https://www.example.com/api/v1/users/1";

        URL obj = new URL(url);
        HttpURLConnection con = (HttpURLConnection) obj.openConnection();

        // 设置请求方式为DELETE
        con.setRequestMethod("DELETE");

        // 设置请求头
        con.setRequestProperty("User-Agent", "Mozilla/5.0");

        int responseCode = con.getResponseCode();

        // 打印响应状态码
        System.out.println("Response Code : " + responseCode);
    }
}

总结

以上就是使用java.net包发送HTTP请求的示例代码。这些代码只是提供了一些基础示例,更多高级用法可以参考java.net包的文档或第三方库的文档。