前言:
今天咱们对“htmlrest”都比较注重,看官们都想要分析一些“htmlrest”的相关文章。那么小编也在网摘上收集了一些有关“htmlrest””的相关知识,希望看官们能喜欢,兄弟们一起来学习一下吧!1.认识RestTemplate
RestTemplate是Spring提供的用于访问RESTful服务的客户端,RestTemplate提供了多种便捷访问远程Http服务的方法,能够大大提高客户端的编写效率。RestTemplate默认依赖JDK提供http连接的能力(HttpURLConnection),也可以通过替换为例如 Apache HttpComponents、Netty或OkHttp等其它HTTP 客户端,OkHttp的性能优越
2.工程中引入OkHttp依赖
<!‐‐ okhttp3依赖 ‐‐><dependency> <groupId>com.squareup.okhttp3</groupId> <artifactId>okhttp</artifactId> <version>3.9.1</version></dependency>3.添加RestTemplate初始化
@Beanpublic RestTemplate restTemplate() { return new RestTemplate(new OkHttp3ClientHttpRequestFactory()) ;}4.使用RestTemplate获取百度的网页内容
@SpringBootTest@RunWith(SpringRunner.class)@Slf4jpublic class RestTemplateTest { @Autowired RestTemplate restTemplate; //获取网页内容 @Test public void gethtml(){ String url = ";; ResponseEntity<String> forEntity = restTemplate.getForEntity(url, String.class); String body = forEntity.getBody(); System.out.println(body); }}
通过测试发现可以成功获取百度的网页内容
5.网页内容中中文乱码解决方案
原因:
当RestTemplate默认使用String存储body内容时默认使用ISO_8859_1字符集。
解决:
配置StringHttpMessageConverter 消息转换器,使用utf-8字符集。
修改RestTemplate的定义方法:
@Beanpublic RestTemplate restTemplate() { RestTemplate restTemplate = new RestTemplate(new OkHttp3ClientHttpRequestFactory()); //消息转换器列表 List<HttpMessageConverter<?>> messageConverters = restTemplate.getMessageConverters(); //配置消息转换器StringHttpMessageConverter,并设置utf‐8 messageConverters.set(1,new StringHttpMessageConverter(StandardCharsets.UTF_8));//支持中文字符集,默认ISO‐8859‐1,支持utf‐8 return restTemplate;}
标签: #htmlrest