
Java调用HTTP REST接口示例代码

"Java调用Http Rest接口的例子说明"
在Java编程中,调用HTTP REST接口是常见的任务,尤其是当你需要与远程服务进行交互时。REST(Representational State Transfer,表述性状态转移)是一种架构风格,常用于构建Web服务。本教程将通过一个简单的示例介绍如何使用Apache HttpClient库在Java中实现HTTP的POST和GET方法。
首先,POST方法常用于向服务器发送数据,而GET方法则用于获取资源。Apache HttpClient是一个强大的库,它提供了对HTTP协议的全面支持,包括错误处理、重试策略等。
以下是使用Apache HttpClient库实现POST方法的示例代码片段:
```java
import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.params.HttpMethodParams;
public class HttpConnectUtil {
// ...
/
* POST方式
* @param url 目标URL
* @param params 参数,以&分隔的键值对(如:key1=value1&key2=value2)
* @return 服务器响应的字符串
*/
public static String postHttp(String url, String params) {
HttpClient httpClient = new HttpClient();
PostMethod postMethod = new PostMethod(url);
// 设置请求参数
postMethod.setRequestBody(params);
// 配置重试处理,如果请求失败,会按照重试次数进行重试
postMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler());
try {
// 执行POST请求
int statusCode = httpClient.executeMethod(postMethod);
if (statusCode != 200) {
throw new RuntimeException("Failed : HTTP error code : " + statusCode);
}
// 获取响应体
byte[] responseBody = postMethod.getResponseBody();
return new String(responseBody);
} catch (HttpException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
// 释放连接资源
postMethod.releaseConnection();
}
return null;
}
// ...
}
```
对于GET方法,它是用来从服务器获取资源的,代码相对简单:
```java
import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.params.HttpMethodParams;
// ...
/
* GET方式
* @param url 请求的URL
* @return 服务器响应的字符串
*/
public static String getHttp(String url) {
HttpClient httpClient = new HttpClient();
GetMethod getMethod = new GetMethod(url);
// 配置重试处理
getMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler());
try {
// 执行GET请求
int statusCode = httpClient.executeMethod(getMethod);
if (statusCode != 200) {
throw new RuntimeException("Failed : HTTP error code : " + statusCode);
}
// 获取响应体
byte[] responseBody = getMethod.getResponseBody();
return new String(responseBody);
} catch (HttpException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
// 释放连接资源
getMethod.releaseConnection();
}
return null;
}
// ...
```
在上述代码中,`HttpClient`对象创建了HTTP连接,`GetMethod`和`PostMethod`分别代表GET和POST请求。`setRequestBody`方法用于设置POST请求的数据,而GET请求通常在URL中直接携带参数。`executeMethod`执行请求,并通过`getStatusCode`检查返回的状态码,以确认请求是否成功。如果成功,可以通过`getResponseBody`获取服务器的响应,并转换为字符串。
注意,处理HTTP请求时,需要捕获并处理可能出现的异常,如`HttpException`和`IOException`。最后,别忘了在请求完成后释放连接资源,以避免资源泄露。
这个示例适用于基本的HTTP REST接口调用,但在实际项目中,可能需要处理更复杂的情况,如添加请求头、处理JSON数据、使用HTTPS、设置超时时间等。Apache HttpClient库提供了丰富的API来应对这些需求,可以灵活地扩展和定制。
相关推荐



















yanzhiking
- 粉丝: 1
最新资源
- 仿美团PC端Web开发实践:Vue框架应用
- 探索Andriy1991.github.io的HTML技术实现
- OpenWrt x86_64自动编译固件详解
- Web代理技术:实现高效网络缓存的关键
- 公司年终JS+HTML抽奖程序:快速随机与自动模式
- Java技术分享与交流平台TechGig
- Python数据定价模块的深入分析与应用
- 本地文件搜索工具的开发与应用
- jpegsrc.v9b.tar.gz:JPEG库的新版本发布
- CodeSandbox上实现neogcamp-markNine标记九分法
- 深入探索GitHub的InnerSource开源模型
- 掌握机器学习:Jupyter Notebook中的决策树算法
- 深入解析HTML在github.io的应用与实践
- 深入解析hannahtobiason.github.io中的CSS技术应用
- rsschool-cv:创意履历表模板设计
- TSQL查询技术:mssql-queries存储库解析
- Kotlin开发应用adfmp1h21-pet界面截图教程
- 2021数据三项全能赛事解析与Jupyter Notebook应用
- Java语言环境下的tejun仓库创建详细步骤
- 4-mergaite:HTML文件压缩技术的最新进展
- Navicat12数据库管理工具压缩包发布
- 掌握JavaScript构建全栈应用的精髓
- C语言实现HFizzBuzz算法分析
- 探索DIDIC技术的核心优势与应用