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

Java中如何使用URLConnection函数发送HTTP请求

发布时间:2023-06-08 02:14:17

URLConnection是Java对HTTP协议的高度封装,使用URLConnection类可以方便地发送HTTP请求。本文将介绍Java中如何使用URLConnection函数发送HTTP请求。

1.建立连接对象

我们使用URLConnection.openConnection()函数创建一个HTTP连接对象,其中URL表示请求的地址,URLConnection.openConnection()函数会根据URL自动判断使用哪种协议。

URL url = new URL("http://www.example.com");
URLConnection conn = url.openConnection();

2.设置请求参数

我们使用URLConnection.setXXX()函数设置请求参数,其中XXX包括请求头信息、请求方法、超时时间、请求内容类型、请求数据长度等信息。

设置请求头信息:

conn.setRequestProperty("User-Agent", "Mozilla/5.0");

设置请求方法:

conn.setRequestMethod("POST");

设置超时时间:

conn.setConnectTimeout(5000); // 设置连接超时时间为5秒
conn.setReadTimeout(10000); // 设置读取超时时间为10秒

设置请求内容类型:

conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded;charset=utf-8");

设置请求数据长度:

conn.setRequestProperty("Content-Length", Integer.toString(data.length));

3.发送请求

我们可以使用URLConnection.connect()函数发送HTTP请求,也可以使用URLConnection.getInputStream()读取返回数据。

发送请求:

conn.connect();

读取返回数据:

InputStream is = conn.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));
String line = null;
while ((line = reader.readLine()) != null) {
    System.out.println(line);
}
is.close();

完整代码示例:

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.URLConnection;

public class HttpUrlConnectionDemo {
    public static void main(String[] args) throws Exception {
        URL url = new URL("http://www.example.com");
        URLConnection conn = url.openConnection();
        conn.setRequestProperty("User-Agent", "Mozilla/5.0");
        conn.setRequestMethod("POST");
        conn.setConnectTimeout(5000);
        conn.setReadTimeout(10000);
        conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded;charset=utf-8");
        byte[] data = "key=value".getBytes("UTF-8");
        conn.setRequestProperty("Content-Length", Integer.toString(data.length));
        conn.setDoOutput(true);
        conn.getOutputStream().write(data);

        conn.connect();

        InputStream is = conn.getInputStream();
        BufferedReader reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));
        String line = null;
        while ((line = reader.readLine()) != null) {
            System.out.println(line);
        }
        is.close();
    }
}

以上就是Java中使用URLConnection函数发送HTTP请求的方法。