赣州网站建设设计,漳州市建设局网站混凝土公示,建设评标专家在哪个网站,wordpress主题破解2019场景#xff1a;前端调用后端的接口完成设备参数的更新#xff0c;后端在接口代码中需要调用设备端提供的接口来完成设备参数的更新。 RestTemplate 是用于同步client端访问 Restful 服务的一个核心类
默认使用 JDK 提供的包去建立HTTP连接
为每种 HTTP 请求都实现了相关的… 场景前端调用后端的接口完成设备参数的更新后端在接口代码中需要调用设备端提供的接口来完成设备参数的更新。 RestTemplate 是用于同步client端访问 Restful 服务的一个核心类
默认使用 JDK 提供的包去建立HTTP连接
为每种 HTTP 请求都实现了相关的请求封装方法,根据HTTP的六个方法制定
HTTP methodRestTemplate methodsDELETEdeleteGETgetForObjectgetForEntityHEADheadForHeadersOPTIONSoptionsForAllowPOSTpostForLocationpostForObjectPUTputanyexchangeexecute
首先编写RestTemplate的配置类
import org.springframework.boot.web.client.RestTemplateBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.MediaType;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
import org.springframework.web.client.RestTemplate;import java.util.ArrayList;
import java.util.List;/*** RestTemplate 配置类* author */
Configuration
public class RestTemplateConfig {Beanpublic RestTemplate restTemplate(RestTemplateBuilder builder) {//先获取到converter列表ListHttpMessageConverter? converters builder.build().getMessageConverters();for(HttpMessageConverter? converter : converters){//因为我们只想要jsonConverter支持对text/html的解析if(converter instanceof MappingJackson2HttpMessageConverter){try{//先将原先支持的MediaType列表拷出ListMediaType mediaTypeList new ArrayList(converter.getSupportedMediaTypes());//加入对text/html的支持mediaTypeList.add(MediaType.TEXT_HTML);mediaTypeList.add(MediaType.TEXT_PLAIN);//将已经加入了text/html的MediaType支持列表设置为其支持的媒体类型列表((MappingJackson2HttpMessageConverter) converter).setSupportedMediaTypes(mediaTypeList);}catch(Exception e){e.printStackTrace();}}}return builder.build();}
}由于设备端接口接收的参数为JSON类型需要在后端将对象转换为JSON对象并添加请求头 Autowiredprivate RestTemplate restTemplate;/*** 获取相机参数** return*/Overridepublic R getOrUpdateParams(CameraParameters cameraParameters) {//调用RestTemplate 向设备端发送http请求String url http://xx.xx.xx.x/8080/update_param;HttpHeaders headers new HttpHeaders();headers.setContentType(MediaType.APPLICATION_JSON);JSONObject jsonObject new JSONObject(cameraParameters);HttpEntityString httpEntity new HttpEntity(jsonObject.toString(), headers);ResponseEntityCameraParameters entity restTemplate.exchange(url, HttpMethod.POST, httpEntity, CameraParameters.class); }return R.ok();}