下面详细讲解Java中Http连接的两种方式。
Http连接的两种方式
在Java中,常用的Http连接方式有两种:URLConnection和HttpClient。下面分别介绍两种方式。
使用URLConnection
Java中的URLConnection类是一个用于HTTP网络操作的基本类。
发送GET请求
发送GET请求需要三个步骤:
- 创建一个URL对象。
- 获取URLConnection对象。
- 使用URLConnection对象获取网络数据。
代码示例:
import java.net.*;
import java.io.*;
public class HttpDemo {
public static void main(String[] args) throws Exception {
URL url = new URL("http://www.baidu.com/");
URLConnection connection = url.openConnection();
BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
System.out.println(line);
}
in.close();
}
}
输出结果:
<!DOCTYPE html>
<!--STATUS OK-->
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>百度一下,你就知道</title>
.........
发送POST请求
发送POST请求同样需要三个步骤:
- 创建一个URL对象。
- 获取URLConnection对象。
- 把参数输入到URLConnection对象中,然后获取网络数据。
代码示例:
import java.net.*;
import java.io.*;
public class HttpDemo {
public static void main(String[] args) throws Exception {
URL url = new URL("http://localhost:8080/hello");
URLConnection connection = url.openConnection();
connection.setDoOutput(true);
OutputStreamWriter out = new OutputStreamWriter(connection.getOutputStream());
out.write("name=张三&age=20");
out.flush();
out.close();
BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
System.out.println(line);
}
in.close();
}
}
输出结果:
Hello, 张三, 你的年龄是20岁
使用HttpClient
HttpClient是一个基于HttpCore库的Java开源框架,提供了更加丰富的Http请求功能。
使用HttpClient发送请求需要四个步骤:
- 创建CloseableHttpClient对象。
- 创建HttpRequest对象。
- 使用CloseableHttpClient对象和HttpRequest对象获取网络数据。
- 关闭CloseableHttpClient对象。
代码示例:
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class HttpDemo {
public static void main(String[] args) throws Exception {
CloseableHttpClient httpClient = HttpClients.createDefault();
HttpGet httpGet = new HttpGet("http://www.baidu.com/");
HttpResponse response = httpClient.execute(httpGet);
BufferedReader in = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
String line;
while ((line = in.readLine()) != null) {
System.out.println(line);
}
httpClient.close();
}
}
输出结果:
<!DOCTYPE html>
<!--STATUS OK-->
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>百度一下,你就知道</title>
.....
以上就是Java中Http连接的两种方式的详细讲解了。希望可以帮助到你。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java中Http连接的两种方式(小结) - Python技术站