下面是详细的Java发起HTTP请求的实现攻略:
1. 准备工作
在Java中发起HTTP请求需要使用到java.net包中的一些类和方法。因此,我们需要先导入以下两个类:
import java.net.HttpURLConnection;
import java.net.URL;
2. 发起GET请求
下面我们通过一个简单的示例来讲解如何使用Java发起GET请求。
URL url = new URL("http://www.example.com");
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setRequestMethod("GET");
int status = con.getResponseCode();
这段代码的作用是首先创建一个URL对象,指定需要访问的URL。然后使用该URL对象创建一个HttpURLConnection对象,使用setRequestMethod方法指定该请求为GET请求。发送请求后,使用getResponseCode方法获取响应状态码。其中,getResponseCode方法会阻塞直到获取到响应数据。如果需要获取响应消息体,可以使用getInputStream方法。
需要注意的是,使用完HttpURLConnection对象后,需要使用disconnect方法关闭连接,释放资源,避免内存泄漏。
3. 发起POST请求
发送POST请求和发送GET请求的过程类似,只需要在设置请求方法的时候使用POST即可。但是,发送POST请求时我们还需要设置请求头和请求参数。下面是一个发送POST请求的示例代码:
URL url = new URL("http://www.example.com");
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setRequestMethod("POST");
con.setRequestProperty("Content-Type", "application/json");
con.setDoOutput(true);
String jsonInputString = "{\"name\": \"John\", \"age\": 30, \"city\": \"New York\"}";
try(OutputStream os = con.getOutputStream()) {
byte[] input = jsonInputString.getBytes("utf-8");
os.write(input, 0, input.length);
}
int responseCode = con.getResponseCode();
这段代码的作用是首先创建一个URL对象,指定需要访问的URL。然后使用该URL对象创建一个HttpURLConnection对象,使用setRequestMethod方法指定该请求为POST请求。接着,设置请求头的内容类型为json,并设置请求参数。在设置请求参数之后,需要将请求参数写入OutputStream中,通过关键字try-with-resources
确保OutputStrem可以自动关闭。发送请求后,使用getResponseCode方法获取响应状态码。
当然,以上示例仅仅是一些简单示例,实际使用中需要结合具体项目场景进行调整。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java如何发起http请求的实现(GET/POST) - Python技术站