我是Spring的新手,我需要我的Java应用程序通过HTTP连接到另一个API(JSON,RESTful).Spring Framework是否有类似JSON HTTP Rest Client的东西?Spring开发人员通常使用什么?
mar*_*cks 45
我通过以下方式实现了我所需要的:
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.client.RestTemplate;
public class RestClient {
private String server = "http://localhost:3000";
private RestTemplate rest;
private HttpHeaders headers;
private HttpStatus status;
public RestClient() {
this.rest = new RestTemplate();
this.headers = new HttpHeaders();
headers.add("Content-Type", "application/json");
headers.add("Accept", "*/*");
}
public String get(String uri) {
HttpEntity<String> requestEntity = new HttpEntity<String>("", headers);
ResponseEntity<String> responseEntity = rest.exchange(server + uri, HttpMethod.GET, requestEntity, String.class);
this.setStatus(responseEntity.getStatusCode());
return responseEntity.getBody();
}
public String post(String uri, String json) {
HttpEntity<String> requestEntity = new HttpEntity<String>(json, headers);
ResponseEntity<String> responseEntity = rest.exchange(server + uri, HttpMethod.POST, requestEntity, String.class);
this.setStatus(responseEntity.getStatusCode());
return responseEntity.getBody();
}
public void put(String uri, String json) {
HttpEntity<String> requestEntity = new HttpEntity<String>(json, headers);
ResponseEntity<String> responseEntity = rest.exchange(server + uri, HttpMethod.PUT, requestEntity, null);
this.setStatus(responseEntity.getStatusCode());
}
public void delete(String uri) {
HttpEntity<String> requestEntity = new HttpEntity<String>("", headers);
ResponseEntity<String> responseEntity = rest.exchange(server + uri, HttpMethod.DELETE, requestEntity, null);
this.setStatus(responseEntity.getStatusCode());
}
public HttpStatus getStatus() {
return status;
}
public void setStatus(HttpStatus status) {
this.status = status;
}
}
Run Code Online (Sandbox Code Playgroud)
Ang*_*ity 16
最简单的是使用RestTemplate,查看官方Spring博客上的这篇文章:
RestTemplate是客户端HTTP访问的中心Spring类.
这是一个GET的例子:
String result = restTemplate.getForObject("http://example.com/hotels/{hotel}/bookings/{booking}", String.class, "42", "21");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
64896 次 |
| 最近记录: |