首先展示目录结构

需要添加的依赖
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
</dependency>
配置Config文件,因为没有RestTemplate需要手动创建,交给IOC容器管理,这样在使用的时候只需要@Autowired这样用就行了
@Autowired
private RestTemplate restTemplate;
package com.ke.alarmdeal.config;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.alibaba.fastjson.support.config.FastJsonConfig;
import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;
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.HttpMessageConverter;
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);
//HttpMessageConverter,报文信息转换器。
// 添加FastJson转换器
FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();
FastJsonConfig fastJsonConfig = new FastJsonConfig();
fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);
fastConverter.setFastJsonConfig(fastJsonConfig);
fastConverter.setDefaultCharset(Charset.forName("UTF-8"));
HttpMessageConverter<?> converter = fastConverter;
restTemplate.getMessageConverters().add(converter);
return restTemplate;
}
@Bean
public ClientHttpRequestFactory simpleClientHttpRequestFactory(){
SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory();
factory.setConnectTimeout(15000);
factory.setReadTimeout(5000);
return factory;
}
}
具体使用方法
public class AutoDealAlarmServiceImpl{
public void sendToDeal(List<MEdTripPlatform> alarmList){
// MultiValueMap<String,Object> params = new LinkedMultiValueMap<>();
// params.addAll("alarmItemList", alarmList);
// params.add("alarmType",2);
// params.add("optType",2);
// params.add("optDesc","自动处理");
//这里使用jsonObject来发送参数,因为接口用的是@RequestBody来接受
JSONObject param = new JSONObject();
param.put("alarmItemList", alarmList);
param.put("alarmType", 2);
param.put("optType", 2);
param.put("optDesc", "自动处理");
//添加token
HttpHeaders headers = new HttpHeaders();
headers.add("authtoken",token);
headers.add("Content-Type","application/json;charset=UTF-8");
// headers.setContentType(MediaType.APPLICATION_JSON_UTF8);
headers.add("Accept", MediaType.APPLICATION_JSON.toString());
//封装请求头
HttpEntity<String> formEntity = new HttpEntity<String>(param.toString(),headers);
String url = "http://192.168.3.135:8888/getData";
ResponseEntity<JSONObject> response2 = restTemplate.postForEntity(url,formEntity, JSONObject.class);
log.info("response2--->{}",response2.getBody());
}
}