Java调用HTTP REST接口示例:GET与POST方法

5星 · 超过95%的资源 需积分: 50 194 下载量 14 浏览量 更新于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仍然是一个很好的选择。