RestTemplate
引入Maven包
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
配置
package org.brando.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.client.ClientHttpRequestFactory;
import org.springframework.http.client.SimpleClientHttpRequestFactory;
import org.springframework.http.converter.StringHttpMessageConverter;
import org.springframework.web.client.RestTemplate;
import java.nio.charset.Charset;
@Configuration
public class RestTemplateConfig {
@Bean
public RestTemplate restTemplate(ClientHttpRequestFactory factory) {
RestTemplate restTemplate = new RestTemplate(factory);
restTemplate.getMessageConverters().set(1, new StringHttpMessageConverter(Charset.forName("utf-8")));
return restTemplate;
}
@Bean
public ClientHttpRequestFactory simpleClientHttpRequestFactory(){
SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory();
factory.setReadTimeout(5000);
factory.setConnectTimeout(5000);
return factory;
}
}
使用代码模板
package org.brando.controller;
import org.brando.entity.MemberInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;
import java.util.List;
@RestController
public class MemberInfoController {
private static final String REST_URL_PREFIX = "http://127.0.0.1:8001/member-center";
@Autowired
private RestTemplate restTemplate;
@RequestMapping(value = "/memberInfo/find/{gid}", method = RequestMethod.GET)
public MemberInfo memberInfoFindByGid(@PathVariable Long gid) {
MemberInfo memberInfo = restTemplate.getForObject(REST_URL_PREFIX + "/view/memberInfo/find/" + gid, MemberInfo.class);
return memberInfo;
}
}
POST设置Header
JSONObject json = new JSONObject();
json.put("username", "admin");
json.put("password", "admin123");
HttpHeaders headers = new HttpHeaders();
MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
headers.setContentType(type);
headers.add("Accept", MediaType.APPLICATION_JSON.toString());
HttpEntity<String> request = new HttpEntity<String>(json.toString(), headers);
ResponseEntity<String> res = restTemplate.postForEntity(url, request, String.class);
JSONObject obj = JSONObject.parseObject(res.getBody());
String token = (String)obj.get("token");
GET设置Header
HttpHeaders headers = new HttpHeaders();
headers.add("Authorization", token);
MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
headers.setContentType(type);
headers.add("Accept", MediaType.APPLICATION_JSON.toString());
HttpEntity<String> request = new HttpEntity<String>(null, headers);
ResponseEntity<String> res = restTemplate.exchange(url, HttpMethod.GET, request, String.class);
JSONObject obj = JSONObject.parseObject(res.getBody());