Spring 3应用程序的Rest Client实现

时间:2012-06-07 10:30:29

标签: spring rest http-headers httpclient rest-client

我需要为我的第3版Web应用程序之一编写java API。我应该能够通过这些API执行我使用Web UI执行的所有操作。我有使用@RequestMapping修饰的控制器方法。我最近听说过,这些方法可以作为Restful服务公开,可以通过rest客户端访问,只需要很少的修改。我只是想知道为spring3服务创建Rest客户端的推荐方法。我不想在这些Java API中使用任何spring依赖项。我应该能够使用这些API上传文件,因为我在我的spring应用程序中实现了multipart / form-data。有人可以帮我选择在java中为Spring应用程序开发RestClients的最佳方法吗?

我有以下HTTP实现:

Java - 使用JVM提供的HTTP实现。与HttpClient实现相比,这有一些限制。

HTTPClient3.1 - 使用Apache Commons HttpClient 3.1。

HTTPClient4 - 使用Apache HttpComponents HttpClient 4.x。

请告诉我你的建议。

1 个答案:

答案 0 :(得分:1)

就个人而言,我使用的是org.springframework.web.client.RestClient,因为你已经在使用Spring了。他们在管理你需要的东西方面做得很好,只要记住他们的例外,没有内容处理糟透了。我必须做的唯一修改是覆盖他们的doExecute(URI, HttpMethod, RequestCallback, ResponseExtractor<T>)并添加:

if (response.getStatusCode().equals(HttpStatus.NO_CONTENT)) {
    return null;
}

之前

if (!getErrorHandler().hasError(response)) { ...

除了那个小怪癖(以及一些自定义异常处理)之外,它还是一个很棒的工具。