需要访问其他外部接口的方法,通过网上的借鉴,记录一下,方便后续借鉴
RestTemplate POST 方法
try {
RestTemplate restTemplate = new RestTemplate();
HttpHeaders headers = new HttpHeaders();
List<String> cookies =new ArrayList<String>();
// 设置Cookie
cookies.add("key"="value; Path=/; HttpOnly");
headers.put(HttpHeaders.COOKIE,cookies);
//设置类型
headers.setContentType(MediaType.APPLICATION_JSON);
// 想要设置其他属性 用headers.set(key,value) 比如token或者密钥
MultiValueMap<String, String> map= new LinkedMultiValueMap<>();
//设置body参数
map.add("FileID", "123");
HttpEntity<MultiValueMap<String, String>> request = new HttpEntity<>(map, headers);
//设置url及方法头和方法体进行连接
ResponseEntity<String> response = restTemplate.postForEntity("http://127.0.0.1:8080/**",request,String.class);
//获取返回值
body = response.getBody();
} catch (RestClientException e) {
//异常处理
}
RestTemplate GET方法
不带请求头的可以用以下方法实现
//第一种方式 getForObject
try {
RestTemplate restTemplate = new RestTemplate();
String url = "http://127.0.0.1:8080/**";
//第一个参数为访问url,第二个为返回参数 这里返回的String 所以可以直接获取
String result = restTemplate.getForObject(url,String.class);
}catch (Exception e){
//异常处理
}
//第二种方式 getForEntity
try {
RestTemplate restTemplate = new RestTemplate();
String url = "http://127.0.0.1:8080/**";
//第一个参数为访问url,第二个为返回参数 这里返回的Entity实体类
ResponseEntity<Entity> resEntity=restTemplate.getForEntity(url,Entity.class);
//需要通过 getBody()获取
resEntity.getBody();
}catch (Exception e){
//异常处理
}
带请求头的用以下方法实现
try {
RestTemplate restTemplate = new RestTemplate();
//创建请求头
HttpHeaders headers = new HttpHeaders();
String url = "http://127.0.0.1:8080/**";
//设置请求头
List<String> cookies =new ArrayList<String>();
// 设置Cookie
cookies.add("key"="value; Path=/; HttpOnly");
headers.put(HttpHeaders.COOKIE,cookies);
//设置类型
headers.setContentType(MediaType.APPLICATION_JSON);
//想要设置其他属性 用headers.set(key,value) 比如token或者密钥
HttpEntity<String> returnData= restTemplate.exchange(url, HttpMethod.GET,new HttpEntity<>(headers),String.class);
returnData.getBody();
}catch (Exception e){
//异常处理
}
URLConnection 方法
链接参考如下: URLConnection 方法.