Java调用HTTP REST接口示例:GET与POST方法
5星 · 超过95%的资源 需积分: 50 73 浏览量
更新于2024-09-13
2
收藏 35KB TXT 举报
"Java调用Http Rest接口例子说明2"
在Java中调用HTTP REST接口是常见的任务,尤其在集成服务、数据交换或者测试API时。REST(Representational State Transfer)是一种网络应用程序的设计风格和开发方式,基于HTTP协议,通常用于构建分布式系统。本示例将介绍如何使用Apache HttpClient库来实现POST和GET方法。
首先,Apache HttpClient是一个功能强大的HTTP客户端库,允许开发者方便地执行HTTP请求。在以下示例中,我们将看到如何使用这个库来发送GET和POST请求:
1. GET方法:
GET方法用于从服务器获取资源。在示例代码中,`getHttp`方法接收一个URL作为参数,创建一个`HttpClient`实例和一个`GetMethod`对象。然后,它设置HTTP方法为GET,并执行该方法以获取响应。响应内容被读取并返回为字符串:
```java
public static String getHttp(String url) {
String responseMsg = "";
HttpClient httpClient = new HttpClient();
GetMethod getMethod = new GetMethod(url);
// 执行GET请求
try {
httpClient.executeMethod(getMethod);
responseMsg = readResponse(getMethod.getResponseBodyAsStream());
} catch (HttpException | IOException e) {
// 处理异常
} finally {
// 释放资源
getMethod.releaseConnection();
}
return responseMsg;
}
private static String readResponse(InputStream inputStream) throws IOException {
// 读取响应流并转化为字符串
}
```
2. POST方法:
POST方法用于向服务器发送数据。`postHttp`方法类似,但使用`PostMethod`对象。需要将请求体(如JSON或表单数据)添加到POST请求中:
```java
public static String postHttp(String url, String requestBody) {
String responseMsg = "";
HttpClient httpClient = new HttpClient();
PostMethod postMethod = new PostMethod(url);
// 设置请求体,例如JSON字符串
postMethod.setRequestEntity(new StringRequestEntity(requestBody, "application/json", "UTF-8"));
try {
httpClient.executeMethod(postMethod);
responseMsg = readResponse(postMethod.getResponseBodyAsStream());
} catch (HttpException | IOException e) {
// 异常处理
} finally {
// 释放资源
postMethod.releaseConnection();
}
return responseMsg;
}
```
3. 通用方法:
通常,我们还会定义一个通用的方法来读取HTTP响应,如`readResponse`,从输入流中读取数据并将其转换为字符串。这可以是这样的:
```java
private static String readResponse(InputStream inputStream) throws IOException {
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int length;
while ((length = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, length);
}
return new String(outputStream.toByteArray(), "UTF-8");
}
```
在实际应用中,你可能需要处理更多细节,如设置超时、处理重定向、添加请求头、错误处理等。此外,Apache HttpClient虽然强大,但它已经被弃用,推荐使用Java内置的`HttpURLConnection`或现代的`HttpClient`(自Java 11引入),它们更易于使用且具有更好的性能和特性。不过,对于学习和简单用途,Apache HttpClient仍然是一个很好的选择。
2020-08-28 上传
920 浏览量
点击了解资源详情
2018-09-19 上传
2011-09-10 上传
2011-09-25 上传
2020-08-18 上传
yanzhiking
- 粉丝: 1
- 资源: 20