当前位置: 首页 > news >正文

哪里免费做网站免费网站建设下载

哪里免费做网站,免费网站建设下载,网站开发视频压缩上传,网站的页脚什么做一、什么是RestTemplate RestTemplate 是Spring框架提供的一个用于应用中调用REST服务的类。它简化了与HTTP服务的通信#xff0c;统一了RESTFul的标准#xff0c;并封装了HTTP连接#xff0c;我们只需要传入URL及其返回值类型即可。RestTemplate的设计原则与许多其他Sprin…一、什么是RestTemplate RestTemplate 是Spring框架提供的一个用于应用中调用REST服务的类。它简化了与HTTP服务的通信统一了RESTFul的标准并封装了HTTP连接我们只需要传入URL及其返回值类型即可。RestTemplate的设计原则与许多其他Spring的模板类如JdbcTemplate相同为执行复杂任务提供了一种具有默认行为的简化方法。 二、RestTemplate 的常用方法 RestTemplate提供了多种方法来进行HTTP请求主要方法包括 1. GET请求 getForObject(String url, Class responseType, Object… uriVariables): 直接返回响应体中的数据。getForEntity(String url, Class responseType, Object… uriVariables): 返回一个ResponseEntity对象其中包含了响应的详细信息如状态码、响应头等。 2. POST请求 postForObject(String url, Object request, Class responseType): 发送POST请求并返回响应体中的数据。postForEntity(String url, Object request, Class responseType): 发送POST请求并返回一个ResponseEntity对象。 3. PUT请求 put(String url, Object request): 发送PUT请求。putForObject(String url, Object request, Class responseType): 发送PUT请求并返回响应体中的数据。 4. DELETE请求 delete(String url): 发送DELETE请求。 其他方法exchange(RequestEntity? request, Class responseType): 这是一个通用的方法可以根据RequestEntity对象发送请求并返回ResponseEntity对象。 三、RestTemplate基本使用 1. pom 文件依赖 Spring Boot的 web starter 已经内置了RestTemplate的Bean我们主需要将它引入到我们的Spring Context中再进行下简单的配置就可以直接使用了。 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId /dependency dependencygroupIdcom.alibaba/groupIdartifactIdfastjson/artifactIdversion1.2.76/version /dependency2. 配置 RestTemplate 1默认配置 RestTemplate默认使用 SimpleClientHttpRequestFactory内部调用JDK的HttpURLConnection进行HTTP请求默认的超时时间为-1即无限期等待。 Configuration public class RestClientConfig { Bean public RestTemplate restTemplate(RestTemplateBuilder builder) { return builder.build(); } // 或者自定义请求工厂 Bean public RestTemplate restTemplate() { SimpleClientHttpRequestFactory factory new SimpleClientHttpRequestFactory(); factory.setReadTimeout(5000); // 设置读取超时时间 factory.setConnectTimeout(5000); // 设置连接超时时间 return new RestTemplate(factory); } }2自定义配置 可以通过设置ClientHttpRequestFactory来自定义RestTemplate的配置如使用HttpComponentsClientHttpRequestFactory基于Apache HttpClient或OkHttp3ClientHttpRequestFactory基于OkHttp等。 可以配置连接池、超时时间、请求和响应的编解码等。 Configuration public class RestTemplateConfig {Bean public HttpClientConnectionManager poolingHttpClientConnectionManager() {PoolingHttpClientConnectionManager poolingHttpClientConnectionManager new PoolingHttpClientConnectionManager();// 设置最大连接数poolingHttpClientConnectionManager.setMaxTotal(500);// 设置每个路由的最大连接数poolingHttpClientConnectionManager.setDefaultMaxPerRoute(100);return poolingHttpClientConnectionManager;}Beanpublic HttpClient httpClient(HttpClientConnectionManager poolingHttpClientConnectionManager) {HttpClientBuilder httpClientBuilder HttpClientBuilder.create();// 设置 HttpClient 的连接管理器httpClientBuilder.setConnectionManager(poolingHttpClientConnectionManager);return httpClientBuilder.build();}Beanpublic ClientHttpRequestFactory clientHttpRequestFactory(HttpClient httpClient) {HttpComponentsClientHttpRequestFactory clientHttpRequestFactory new HttpComponentsClientHttpRequestFactory();// 设置 HttpClientclientHttpRequestFactory.setHttpClient(httpClient);// 设置连接超时时间毫秒clientHttpRequestFactory.setConnectTimeout(5 * 1000);// 设置读取超时时间毫秒clientHttpRequestFactory.setReadTimeout(10 * 1000);// 设置从连接池获取连接的超时时间毫秒clientHttpRequestFactory.setConnectionRequestTimeout(10 * 1000);return clientHttpRequestFactory;}Beanpublic RestTemplate restTemplate(ClientHttpRequestFactory clientHttpRequestFactory) {RestTemplate restTemplate new RestTemplate();// 设置请求工厂restTemplate.setRequestFactory(clientHttpRequestFactory);return restTemplate;}}四、服务端代码实战 1. 服务端接口类 RestController public class RestControllerDemo {/*** 普通Get** param name* return*/GetMapping(/get)private String getMethod(RequestParam(name) String name) {System.out.println(getMethod : name name);return name;}/*** Restful Get** param name* return*/GetMapping(/getName/{name})private String getRestName(PathVariable(name) String name) {System.out.println(getRestName : name name);return name;}/*** post** param name* return*/PostMapping(/post)private String postMethod(RequestParam(name) String name) {System.out.println(postMethod : name name);return name;}/*** post json** param stu* return*/PostMapping(/postBody)public String postBodyMethod(RequestBody String stu) {Student student JSONObject.parseObject(stu, Student.class);System.out.println(postBodyMethod : student student);return student.toString();} }2. 测试类 SpringBootTest class DemoApplicationTests {// 引入 restTemplateResourceprivate RestTemplate restTemplate;Testvoid getTest() {String str restTemplate.getForObject(http://localhost:8888/get?namezs, String.class);System.out.println(str);}Testvoid getRestTest() {String name ls;String str restTemplate.getForObject(http://localhost:8888/getName/ name, String.class);System.out.println(str);}Testvoid postTest() {LinkedMultiValueMapString, String map new LinkedMultiValueMap();map.set(name, zs);String str restTemplate.postForObject(http://localhost:8888/post, map, String.class);System.out.println(str);}Testvoid postBodyTest() {HttpHeaders headers new HttpHeaders();MediaType type MediaType.parseMediaType(application/json; charsetUTF-8);headers.setContentType(type);headers.add(Accept, MediaType.APPLICATION_JSON.toString());HashMapString, Object map new HashMap();map.put(name, zs);map.put(age, 23);String stu JSON.toJSONString(map);HttpEntityString formEntity new HttpEntityString(stu, headers);String str restTemplate.postForObject(http://localhost:8888/postBody, formEntity, String.class);System.out.println(str);}}3. exchange 使用示例 通过 HttpHeaders 和 UriComponentsBuilder 可以方便地添加自定义请求头和构建带参数的 URL。 UriComponentsBuilder builder UriComponentsBuilder.fromHttpUrl(url) .queryParam(param1, value1) .queryParam(param2, value2); String finalUrl builder.toUriString(); HttpHeaders headers new HttpHeaders(); headers.add(Custom-Header, HeaderValue); HttpEntityString request new HttpEntity(null, headers); ResponseEntityString response restTemplate.exchange( finalUrl, HttpMethod.GET, request, String.class );
http://www.hkea.cn/news/14367319/

相关文章:

  • 查找南宁网站开发公司网站建设柒金手指排名二一
  • 郑州网站建设公司航迪软件怎么样做包装盒效果图网站
  • 网站开发实训基本要求手机支付网站开发
  • 番禺建设网站网站建设相关话术
  • 餐厅装修设计公司网站河北工商注册网入口
  • 莱芜高端网站设计建设wordpress斌果主题
  • 建站工具有哪些建网站花多少钱
  • 做灯具外贸哪个网站好做做好一个网站后
  • 正保建设工程网站在青岛建网站
  • 设计不错的网站网站建设项目设计报告
  • 周村家具行业网站建设浦项建设内部网站
  • 用自己的电脑做服务器搭建网站公诚管理咨询有限公司
  • 哈尔滨模板建站品牌电子商务seo名词解释
  • 企业网站必备模块dede淘宝客网站模板
  • 手机网站优点河北网站seo优化
  • 建设银行办信用卡网站首页杭州昨晚发生大事了
  • 站长工具seo综合医院网站建设技术方案
  • net域名大网站交互设计专业就业前景
  • 网站收录降低重庆建设注册执业中心网站
  • 网站开发年度总结工作东圃手机网站制作费用
  • 做7寸照片的网站手机如何开发软件
  • 银川网站建设哪家价格低七牛备份wordpress
  • 沈阳网站制作的公司精准扶贫电商网站建设计划书
  • 如何自建网站 优帮云wordpress定时发布功能
  • 龙岗网站建设 信科网络网站后台怎么控制
  • 如何给自己网站做网站优化迈若网站建设
  • 房产交易网站开发网页设计尺寸怎么设计
  • 站长工具seo综合查询隐私查询南京房产网
  • 新手怎么用DW建设一个网站网站备案名称更改
  • 旅游网站开发 结束语html怎么做成网站