- 主页 > 生活百科 > >
手撸了一个网络请求工具类,开发速度迅速提升了300%( 二 )
- 最后,我们来做一下单元测试,使用案例如下,接口api还是基于上篇文章提供的服务
@RunWith(SpringRunner.class)@SpringBootTestpublic class HttpControllerJunit {@Autowiredprivate HttpTemplate httpTemplate;/*** get请求测试*/@Testpublic void testGet(){//请求地址String url = "http://localhost:8080/testGet";//发起请求,直接返回对象ResponseBean responseBean = httpTemplate.get(url, createHeader("get"), ResponseBean.class);System.out.println(responseBean.toString());}/*** get请求测试,restful风格*/@Testpublic void testGetByRestFul(){//请求地址String url = "http://localhost:8080/testGetByRestFul/{1}";//发起请求,直接返回对象(restful风格)ResponseBean responseBean = httpTemplate.get(url, createHeader("testGetByRestFul"), ResponseBean.class, "张三");System.out.println(responseBean.toString());}/*** 模拟表单提交,post请求*/@Testpublic void testPostByForm(){//请求地址String url = "http://localhost:8080/testPostByFormAndObj";//表单参数Map<String, Object> paramMap = new HashMap<>();paramMap.put("userName", "唐三藏");paramMap.put("userPwd", "123456");//发起请求ResponseBean responseBean = httpTemplate.postByFrom(url, createHeader("testPostByFormAndObj"), paramMap, ResponseBean.class);System.out.println(responseBean.toString());}/*** 模拟JSON提交,post请求*/@Testpublic void testPostByJson(){//请求地址String url = "http://localhost:8080/testPostByJson";//入参RequestBean request = new RequestBean();request.setUserName("唐三藏");request.setUserPwd("123456789");//发送post请求,并打印结果,以String类型接收响应结果JSON字符串ResponseBean responseBean = httpTemplate.postByJson(url, createHeader("testPostByJson"), request, ResponseBean.class);System.out.println(responseBean.toString());}/*** 重定向,post请求,json方式提交*/@Testpublic void testPostByLocation(){//请求地址String url = "http://localhost:8080/testPostByLocation";//入参RequestBean request = new RequestBean();request.setUserName("唐三藏");request.setUserPwd("123456789");//用于提交完成数据之后的页面跳转String uri = httpTemplate.postForLocation(url,createHeader("testPostByLocation"), request);System.out.println(uri);}/*** put请求,json方式提交*/@Testpublic void testPutByJson(){//请求地址String url = "http://localhost:8080/testPutByJson";//入参RequestBean request = new RequestBean();request.setUserName("唐三藏");request.setUserPwd("123456789000");//模拟JSON提交,put请求ResponseBean responseBean = httpTemplate.put(url,createHeader("testPutByJson"), request, ResponseBean.class);System.out.println(responseBean.toString());}/*** delete请求,json方式提交*/@Testpublic void testDeleteByJson(){//请求地址String url = "http://localhost:8080/testDeleteByJson";//模拟JSON提交,delete请求ResponseBean responseBean = httpTemplate.delete(url,createHeader("testDeleteByJson"), ResponseBean.class);System.out.println(responseBean.toString());}/*** 文件上传,post请求*/@Testpublic void uploadFile(){//需要上传的文件String filePath = "/Users/panzhi/Desktop/Jietu20220205-194655.jpg";//请求地址String url = "http://localhost:8080/upload";//提交参数设置MultiValueMap<String, Object> param = new LinkedMultiValueMap<>();param.add("uploadFile", new FileSystemResource(new File(filePath)));//服务端如果接受额外参数,可以传递param.add("userName", "张三");ResponseBean responseBean = httpTemplate.uploadFile(url, createHeader("uploadFile"), param, ResponseBean.class);System.out.println(responseBean.toString());}/*** 小文件下载* @throws IOException*/@Testpublic void downloadFile() throws IOException {String userName = "张三";String fileName = "f9057640-90b2-4f86-9a4b-72ad0e253d0d.jpg";//请求地址String url = "http://localhost:8080/downloadFile/{1}/{2}";//发起请求,直接返回对象(restful风格)byte[] stream = httpTemplate.downloadFile(url, createHeader("downloadFile"), userName,fileName);// 将下载下来的文件内容保存到本地String targetPath = "/Users/panzhi/Desktop/"+ fileName;Files.write(Paths.get(targetPath), Objects.requireNonNull(stream, "未获取到下载文件"));}/*** 大文件下载* @throws IOException*/@Testpublic void downloadBigFile() {String userName = "张三";String fileName = "f9057640-90b2-4f86-9a4b-72ad0e253d0d.jpg";String targetPath = "/Users/panzhi/Desktop/"+ fileName;//请求地址String url = "http://localhost:8080/downloadFile/{1}/{2}";//对响应进行流式处理而不是将其全部加载到内存中httpTemplate.downloadBigFile(url, createHeader("downloadBigFile"), clientHttpResponse -> {Files.copy(clientHttpResponse.getBody(), Paths.get(targetPath));return null;}, userName, fileName);}/*** 自定义请求头部* @param value* @return*/private Map<String, String> createHeader(String value){Map<String, String> headers = new HashMap<>();headers.put("token", value);return headers;}}
推荐阅读
-
-
寒塘渡鹤影冷月葬花魂出自哪两个人之手?寒鸦渡鹤影冷月葬花魂
-
南国早报|玉林11岁女孩骑车被3名骑电摩女孩恶意拉倒,女孩父亲:一定要找到她们
-
宁静的晴空TB|鲜香味美,食而不忘,邀你一起品尝生活好滋味,20余道家常菜
-
湖人|湖人轰15-0打疯了!15三分太疯狂,休城大崩盘恐1-4出局
-
【车家号】1 辆和第 100 万辆福特 Mustang 的故事,第
-
中华网游戏综合|南京女生被害后男友曾微信寻人,三个嫌疑人个人资料及关系曝光
-
-
星肖君的秘密■4属相吉星傍身,桃花多见,翻身走大运,事业成功,在5月中旬
-
系统崩溃|系统崩溃,仓库已售空!鸿星尔克发紧急通知求大家退款
-
星座生肖解析|4属相好运到,大吉大利,生活越来越幸福,10月份运势回升
-
[二次元神隐TB]简单好吃的鹌鹑蛋牛肉丸,松脆肉嫩易吸收,孩子爱吃的营养辅食
-
-
-
青年|“巅峰乱杀赛场拉垮?”面对吐槽,或许只有数据能帮GK梦岚解围
-
-
-
-
药品|太平人寿抢滩特药险:囊括49种抗癌药,续保最高可至99岁
-