1、http的请求方式
(1)GET:通过请求URI得到资源
(2)POST:用于添加新的内容
(3)PUT:用于修改某个内容,若不存在则添加
(4)DELETE:删除某个内容
(5)OPTIONS :询问可以执行哪些方法
(6)HEAD :类似于GET, 但是不返回body信息,用于检查对象是否存在,以及得到对象的元数据
(7)CONNECT :用于代理进行传输,如使用SSL
(8)TRACE:用于远程诊断服务器
2、Spring RestTemplate 的使用方式
RestTemplate是Spring提供的用于访问Rest服务的客户端,RestTemplate提供了多种便捷访问远程Http服务的方法,能够大大提高客户端的编写效率。
(1)restTemplate.getForEntity() 和 restTemplate.getForObject();
restTemplate实现了RestOperations接口的getForObject请求方法如下
<T> T getForObject(URI url, Class<T> responseType) throws RestClientException;
<T> T getForObject(String url, Class<T> responseType, Object... uriVariables) throws RestClientException;
<T> T getForObject(String url, Class<T> responseType, Map<String, ?> uriVariables) throws RestClientException;
使用上面三个接口方法,分别实现发送请求
// 使用方法一,不带参数
String url = "http://114.67.70.75:8090/test/test1?id=00975";
String res = restTemplate.getForObject(url, String.class);
System.out.println(res);
// 使用方法二,传参替换
url = "http://114.67.70.75:8090/test/test1?id={?}";
res = restTemplate.getForObject(url, String.class, "00975");
System.out.println(res);
// 使用方法二,map传参
url = "http://114.67.70.75:8090/test/test1?id={id}&name={name}";
Map<String, Object> params = new HashMap<>();
params.put("id", "00975");
params.put("name","紫光");
res = restTemplate.getForObject(url, String.class, params);
System.out.println(res);
restTemplate.getForEntity()的使用形式与restTemplate.getForObject相同, restTemplate.getForEntity()的响应结果多了
http状态码和responseHeader;
ResponseEntity res2 = restTemplate.getForEntity(url,String.class);
(2) restTemplate.postForObject() 和 restTemplate.postForEntity();
restTemplate实现了RestOperations接口的postForObject请求方法如下
<T> T postForObject(URI url, @Nullable Object request, Class<T> responseType) throws RestClientException;
<T> T postForObject(String url, @Nullable Object request, Class<T> responseType,
Object... uriVariables) throws RestClientException;
<T> T postForObject(String url, @Nullable Object request, Class<T> responseType,
Map<String, ?> uriVariables) throws RestClientException;
使用上面三个接口方法,分别实现发送请求
MultiValueMap<String, String> request = new LinkedMultiValueMap<>();
request.add("name", name);
request.add("age", age);
Map param = new HashMap();
param.put("