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

网站后台管理系统哪个好.net网站 作品

网站后台管理系统哪个好,.net网站 作品,无为教育网站,重庆网站建设夹夹虫目录 一、RestTemplate配置 1、将RestTemplate初始化为Bean 2、使用HttpClient作为RestTemplate客户端 #xff08;1#xff09;引入HttpClient依赖 #xff08;2#xff09;修改RestTemplate配置类 3、设置拦截器 #xff08;1#xff09;新增拦截器类 #xf…目录 一、RestTemplate配置 1、将RestTemplate初始化为Bean 2、使用HttpClient作为RestTemplate客户端 1引入HttpClient依赖 2修改RestTemplate配置类 3、设置拦截器 1新增拦截器类 2设置拦截器 4、新增支持的媒体类型 二、RestTemplate使用 1、RestTemplate注入 2、无参数get请求测试 1Controller代码 2RestTemplate单元测试 3、带参get请求测试 1Controller代码 2RestTemplate单元测试 4、带占位符参数的get请求测试 1Controller代码 2RestTemplate单元测试 5、post请求测试 1Article实体类 2Controller代码 3RestTemplate单元测试 6、设置请求头 1Article实体类 2Controller代码 3RestTemplate单元测试 7、上传文件 1Controller代码 2RestTemplate单元测试 8、文件下载 1Controller代码 2RestTemplate单元测试 三、参考 一、RestTemplate配置 1、将RestTemplate初始化为Bean package com.xiaobai.conf;import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.client.RestTemplate;import java.util.Collections;/*** Author 王天文* Date 2024/12/29 18:06* Description: RestTemplate配置类*/ Configuration public class RestTemplateConf {/*** 当指定类型Bean不存在时会创建一个新的Bean如果用户自定义了Bean,将使用用户自定义的Bean* return*/ConditionalOnMissingBean(RestTemplate.class)Beanpublic RestTemplate restTemplate() {// 使用JDK自带的HttpURLConnection作为客户端RestTemplate restTemplate new RestTemplate();return restTemplate;} }2、使用HttpClient作为RestTemplate客户端 1引入HttpClient依赖 !--httpclient--dependencygroupIdorg.apache.httpcomponents/groupIdartifactIdhttpclient/artifactIdversion4.5.7/version/dependency 2修改RestTemplate配置类 package com.xiaobai.conf;import org.apache.http.client.config.RequestConfig; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClientBuilder; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.http.client.ClientHttpRequestFactory; import org.springframework.http.client.HttpComponentsClientHttpRequestFactory; import org.springframework.web.client.RestTemplate;import java.util.Collections;/*** Author 王天文* Date 2024/12/29 18:06* Description: RestTemplate配置类*/ Configuration public class RestTemplateConf {/*** 当指定类型Bean不存在时会创建一个新的Bean如果用户自定义了Bean,将使用用户自定义的Bean* return*/ConditionalOnMissingBean(RestTemplate.class)Beanpublic RestTemplate restTemplate() {// 使用httpclient作为底层客户端RestTemplate restTemplate new RestTemplate(getClientHttpRequestFactory());return restTemplate;}/*** 使用httpclient作为底层客户端* return*/Beanpublic ClientHttpRequestFactory getClientHttpRequestFactory() {int timeout 50000;RequestConfig requestConfig RequestConfig.custom().setConnectTimeout(timeout).setConnectionRequestTimeout(timeout).setSocketTimeout(timeout).build();CloseableHttpClient httpClient HttpClientBuilder.create().setDefaultRequestConfig(requestConfig).build();return new HttpComponentsClientHttpRequestFactory(httpClient);} }3、设置拦截器 1新增拦截器类 package com.xiaobai.conf;import org.springframework.http.HttpRequest; import org.springframework.http.client.ClientHttpRequestExecution; import org.springframework.http.client.ClientHttpRequestInterceptor; import org.springframework.http.client.ClientHttpResponse;import java.io.IOException;/*** Author 王天文* Date 2024/12/22 21:51* Description: restTemplate拦截器*/ public class RestTemplateInterceptor implements ClientHttpRequestInterceptor {Overridepublic ClientHttpResponse intercept(HttpRequest httpRequest,byte[] bytes,ClientHttpRequestExecution clientHttpRequestExecution) throws IOException {ClientHttpResponse httpResponse clientHttpRequestExecution.execute(httpRequest, bytes);return httpResponse;} }2设置拦截器 package com.xiaobai.conf;import org.apache.http.client.config.RequestConfig; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClientBuilder; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.http.client.ClientHttpRequestFactory; import org.springframework.http.client.HttpComponentsClientHttpRequestFactory; import org.springframework.web.client.RestTemplate;import java.util.Collections;/*** Author 王天文* Date 2024/12/29 18:06* Description: RestTemplate配置类*/ Configuration public class RestTemplateConf {/*** 当指定类型Bean不存在时会创建一个新的Bean如果用户自定义了Bean,将使用用户自定义的Bean* return*/ConditionalOnMissingBean(RestTemplate.class)Beanpublic RestTemplate restTemplate() {// 使用JDK自带的HttpURLConnection作为客户端RestTemplate restTemplate new RestTemplate(getClientHttpRequestFactory());// 设置拦截器restTemplate.setInterceptors(Collections.singletonList(restTemplateInterceptor()));return restTemplate;}/*** 使用httpclient作为底层客户端* return*/Beanpublic ClientHttpRequestFactory getClientHttpRequestFactory() {int timeout 50000;RequestConfig requestConfig RequestConfig.custom().setConnectTimeout(timeout).setConnectionRequestTimeout(timeout).setSocketTimeout(timeout).build();CloseableHttpClient httpClient HttpClientBuilder.create().setDefaultRequestConfig(requestConfig).build();return new HttpComponentsClientHttpRequestFactory(httpClient);}/*** 拦截器* return*/Beanpublic RestTemplateInterceptor restTemplateInterceptor() {return new RestTemplateInterceptor();} }4、新增支持的媒体类型 RestTemplate 只支持application/json格式需要手动补充text/plan,text/html格式 package com.xiaobai.conf;import org.apache.http.client.config.RequestConfig; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClientBuilder; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.http.MediaType; import org.springframework.http.client.ClientHttpRequestFactory; import org.springframework.http.client.HttpComponentsClientHttpRequestFactory; import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; import org.springframework.web.client.RestTemplate;import java.util.Arrays; import java.util.Collections;/*** Author 王天文* Date 2024/12/29 18:06* Description: RestTemplate配置类*/ Configuration public class RestTemplateConf {/*** 当指定类型Bean不存在时会创建一个新的Bean如果用户自定义了Bean,将使用用户自定义的Bean* return*/ConditionalOnMissingBean(RestTemplate.class)Beanpublic RestTemplate restTemplate() {// 使用JDK自带的HttpURLConnection作为客户端RestTemplate restTemplate new RestTemplate(getClientHttpRequestFactory());// 设置拦截器restTemplate.setInterceptors(Collections.singletonList(restTemplateInterceptor()));// 增加支持的媒体类型restTemplate.getMessageConverters().add(mappingJackson2HttpMessageConverter());return restTemplate;}/*** 使用httpclient作为底层客户端* return*/Beanpublic ClientHttpRequestFactory getClientHttpRequestFactory() {int timeout 50000;RequestConfig requestConfig RequestConfig.custom().setConnectTimeout(timeout).setConnectionRequestTimeout(timeout).setSocketTimeout(timeout).build();CloseableHttpClient httpClient HttpClientBuilder.create().setDefaultRequestConfig(requestConfig).build();return new HttpComponentsClientHttpRequestFactory(httpClient);}/*** 拦截器* return*/Beanpublic RestTemplateInterceptor restTemplateInterceptor() {return new RestTemplateInterceptor();}/*** 媒体类型* return*/Beanpublic MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter() {// RestTemplate 只支持application/json格式需要手动补充text/html格式MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter new MappingJackson2HttpMessageConverter();mappingJackson2HttpMessageConverter.setSupportedMediaTypes(Arrays.asList(MediaType.TEXT_PLAIN, MediaType.TEXT_HTML));return mappingJackson2HttpMessageConverter;} }二、RestTemplate使用 1、RestTemplate注入 Autowiredprivate RestTemplate restTemplate; 2、无参数get请求测试 1Controller代码 GetMapping(value /getString)public String getString() {return 操作成功;} 2RestTemplate单元测试 Testpublic void testGetString() {ResponseEntityString responseEntity restTemplate.getForEntity(http://localhost:8090/getString, String.class);log.info(responseEntity.getBody());} 3、带参get请求测试 1Controller代码 GetMapping(/getRequestByParam)public MapString, Object getRequestByParam(RequestParam(name) String name) {log.info(名称 name);MapString, Object map new HashMap();map.put(responseData, 请求成功);return map;} 2RestTemplate单元测试 Testpublic void testParamGet() throws Exception {MapString, Object param new HashMap();param.put(name, 张三);ResponseEntityString responseEntity restTemplate.getForEntity(http://localhost:8090/getRequestByParam?name{name}, String.class, param);log.info(响应信息{}, responseEntity.getBody());} 4、带占位符参数的get请求测试 1Controller代码 GetMapping(/getRequestByPlaceHolder/{name}/{age})public MapString, Object getRequestByPlaceHolder(PathVariable(name) String name,PathVariable(age) String age) {log.info(名称 name);log.info(年龄 age);MapString, Object map new HashMap();map.put(responseData, 请求成功);return map;} 2RestTemplate单元测试 Testpublic void testPlaceholderGet() {ResponseEntityString responseEntity restTemplate.getForEntity(http://localhost:8090/getRequestByPlaceHolder/{1}/{2}, String.class, 张三, 25);log.info(响应信息{}, responseEntity.getBody());} 5、post请求测试 1Article实体类 package com.xiaobai.aroundtest.entity;import lombok.Data;import java.io.Serializable;/*** author wangtw* date 2023/12/6 0:35* description*/ Data public class Article implements Serializable {private static final long serialVersionUID 1L;/*** 文章名称*/private String name;/*** 描述*/private String description; }2Controller代码 PostMapping(/postRequest)public MapString, Object postRequest(RequestParam String name, RequestBody Article article) {log.info(名称 name);log.info(文章名称 article.getName());log.info(文章描述 article.getDescription());MapString, Object map new HashMap();map.put(responseData, 请求成功);return map;} 3RestTemplate单元测试 Testpublic void testPost() {// 表单数据MapString, Object formData new HashMap();formData.put(name, 解忧杂货店);formData.put(description, 这是一本好书);// 单独传参MapString, Object param new HashMap();param.put(name, 东野圭吾);// 请求调用HttpEntityMapString, Object formEntity new HttpEntity(formData);ResponseEntityString responseEntity restTemplate.postForEntity(http://localhost:8090/postRequest?name{name}, formEntity, String.class, param);log.info(响应信息{}, responseEntity.getBody());} 6、设置请求头 1Article实体类 package com.xiaobai.aroundtest.entity;import lombok.Data;import java.io.Serializable;/*** author wangtw* date 2023/12/6 0:35* description*/ Data public class Article implements Serializable {private static final long serialVersionUID 1L;/*** 文章名称*/private String name;/*** 描述*/private String description; }2Controller代码 PostMapping(/postRequestHeader)public MapString, Object postRequestHeader(HttpServletRequest request,RequestParam String name, RequestBody Article article) {String token request.getHeader(token);log.info(请求token token);log.info(名称 name);log.info(文章名称 article.getName());log.info(文章描述 article.getDescription());MapString, Object map new HashMap();map.put(responseData, 请求成功);return map;} 3RestTemplate单元测试 Testpublic void testPostHeader() {// 请求头HttpHeaders httpHeaders new HttpHeaders();httpHeaders.add(token, 123456);// 表单数据MapString, Object formData new HashMap();formData.put(name, 解忧杂货店);formData.put(description, 这是一本好书);// 单独传参MapString, Object param new HashMap();param.put(name, 东野圭吾);// 请求调用HttpEntityMapString, Object formEntity new HttpEntity(formData, httpHeaders);ResponseEntityString responseEntity restTemplate.postForEntity(http://localhost:8090/postRequestHeader?name{name}, formEntity, String.class, param);log.info(响应信息{}, responseEntity.getBody());} 7、上传文件 1Controller代码 PostMapping(/upload)public MapString, Object upload(RequestParam String name, MultipartFile uploadFile) throws IOException {log.info(名称 name);uploadFile.transferTo(new File(D:\\temp/ uploadFile.getOriginalFilename()));MapString, Object map new HashMap();map.put(responseData, 请求成功);return map;} 2RestTemplate单元测试 Testpublic void testUploadFile() {MultiValueMapString, Object param new LinkedMultiValueMap();param.add(uploadFile, new FileSystemResource(new File(D:\\christmas-tree.svg)));param.add(name, 张三);// 请求头设置HttpHeaders headers new HttpHeaders();headers.setContentType(MediaType.MULTIPART_FORM_DATA);// 请求调用HttpEntityMultiValueMapString, Object formEntity new HttpEntity(param, headers);ResponseEntityString responseEntity restTemplate.postForEntity(http://localhost:8090/upload, formEntity, String.class);log.info(响应信息{}, responseEntity.getBody());} 8、文件下载 1Controller代码 PostMapping(/download)public MapString, Object download(RequestParam String fileName,HttpServletResponse response) {log.info(文件名称 fileName);File file new File(D:\\temp/ fileName);try(FileInputStream fileInputStream new FileInputStream(file);ServletOutputStream outputStream response.getOutputStream()) {response.setHeader(content-disposition,attachment;fileName URLEncoder.encode(fileName,UTF-8));FileCopyUtils.copy(fileInputStream, outputStream);} catch (Exception e) {e.printStackTrace();}MapString, Object map new HashMap();map.put(responseData, 请求成功);return map;} 2RestTemplate单元测试 Testpublic void testDownloadFile() {MultiValueMapString, Object param new LinkedMultiValueMap();param.add(fileName, christmas-tree.svg);// 请求调用HttpEntityMultiValueMapString, Object formEntity new HttpEntity(param);ResponseEntitybyte[] responseEntity restTemplate.postForEntity(http://localhost:8090/download, formEntity, byte[].class);// 获取响应头HttpHeaders responseEntityHeaders responseEntity.getHeaders();SetMap.EntryString, ListString responseSet responseEntityHeaders.entrySet();for (Map.EntryString, ListString responseValue : responseSet) {log.info(响应头 responseValue.getKey() 响应内容 responseValue.getValue());}try {// 文件保存byte[] fileData responseEntity.getBody();FileCopyUtils.copy(fileData, new File(D:\\christmas-tree1.svg));} catch (IOException e) {e.printStackTrace();}} 三、参考 Spring之RestTemplate详解
http://www.hkea.cn/news/14407697/

相关文章:

  • 怎么做二维码微信扫后直到网站嘉兴备案网站
  • 成都网站制作公司dedecms2013网站挂马教程
  • 网站seo化自己可以吗discuz模板开发教程
  • 网站开发时间一般是永州冷水滩网站建设
  • 万家灯火网站建设做基因功能注释的网站
  • 老年大学网站开发SEO网站价格
  • 个人网站模板制作品牌设计和广告设计
  • 做粉丝网站会侵权吗深圳软件开发公司在哪里
  • 用html做网站搜索框高端网站制作价格
  • 自建博客网站凡科网企业账号登录
  • 产品目录网站模板大丰区住房和城乡建设局网站
  • 东莞公司建站模板安徽省建设厅网站首页
  • 企业网站建设分为那几个阶段广州学生做网站
  • 深圳电商网站ac68u做网站
  • 响应式h5网站多少钱域名是否被注册查询
  • wordpress做资源分享站建设网站前景怎么样
  • 买域名做网站wordpress文章标题字体
  • 做网站一屏是多大国际阿里网站首页建设
  • 有学给宝宝做衣服的网站吗wordpress转dz
  • 南海大良网站建设2023年适合小学生的新闻
  • 天津市企业网站设计公司织梦dede网站后台被挂黑链怎么办
  • 失业保险网站个人网站开发的论文
  • 有专门做电商网站的CMS吗做图网站有哪些
  • 江苏省电力建设一公司网站html 网站地图
  • 蚌埠的网站建设app推广一手单
  • 网站后台发了文章看不到搜狗推广登录平台
  • 做视频上什么网站找创意吉林东奥建设集团网站
  • 交易网站域名网页维护包括哪些
  • 2019广东省工程建设网站如何更改wordpress语言
  • vps主机可以做几个网站金融投资公司网站建设论文