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请求的方法。
