• 【RestTemplate】使用学习


    【RestTemplate】使用学习

    Url中带参数,request body带json

    MultiValueMap<String, String> param = new LinkedMultiValueMap<>();
    param.add("appid", "youappid");
    param.add("message", "Hello World!");
    param.add("sign", "sign");
    
    UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(url).queryParams(param);
    
    HttpHeaders httpHeaders = new HttpHeaders();
    httpHeaders.setContentType(MediaType.APPLICATION_JSON);//MediaType.TEXT_PLAIN
    HttpEntity<String> httpEntity = new HttpEntity<>(json, httpHeaders);
    
    ResponseEntity<Map> responseEntity = restTemplate.postForEntity(builder.toUriString(), httpEntity, Map.class);
    
    log.error("返回状态:" + responseEntity.getStatusCodeValue());
    log.error("返回内容:" + responseEntity.getBody());
    log.error("返回对象:" + JSONUtil.toJsonStr(responseEntity));

    上传文件 multipart/form-data 方式

    private String uploadFile(String content) {
        Random random = new Random();
        String tempFileName = UUID.randomUUID().toString().replaceAll("-", "") + random.nextInt(99999);
        File file = null;
        try {
            file = File.createTempFile(tempFileName, ".html");
            FileOutputStream fos = new FileOutputStream(file);
            fos.write(content.getBytes(Charsets.UTF_8));
            fos.flush();
            fos.close();
    
            MultiValueMap<String, String> param = new LinkedMultiValueMap<>();
            param.add("appId", "testappId");
    
            UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl("http://www.yousys.com/upload").queryParams(param);
    
            HttpHeaders httpHeaders = new HttpHeaders();
            httpHeaders.setContentType(MediaType.MULTIPART_FORM_DATA);
    
    
            MultiValueMap<String, Object> body = new LinkedMultiValueMap<>();
            body.add("appId", "testappId");
            body.add("file", new FileSystemResource(file));
    
            HttpEntity<MultiValueMap<String, Object>> httpEntity = new HttpEntity<>(body, httpHeaders);
            ResponseEntity<Map> responseEntity = restTemplate.postForEntity(builder.toUriString(), httpEntity, Map.class);
            Map map = responseEntity.getBody(); // {code=0, msg=操作成功, data={fileURL=20201125143909/ace0bd4d7a80414099100cb34b58495d.html}, isHitCache=0}
            if ("0".equals(String.valueOf(map.get("code"))) && Objects.nonNull(map.get("data"))) {
                Map data = (Map) map.get("data");
                return String.valueOf(data.get("fileURL"));
            }
        } catch (Exception e) {
            log.error(e.getMessage());
            e.printStackTrace();
        } finally {
            if (file != null && file.exists()) {
                file.delete();
            }
        }
        return "";
    }
  • 相关阅读:
    PHP学习笔记-session
    [C语言] 插入排序之希尔(shell)排序的特性及实现
    [C语言] 插入排序之二分插入排序的特性及实现
    [C语言] 插入排序之直接插入排序的特性及实现
    [Linux环境编程] TCP通信与多线程编程实现“多人在线聊天室”
    [Linux环境编程] 信号的基本概念与操作函数
    [Linux环境编程] Linux系统命令“rm -rf”的实现
    [Linux环境编程] Linux系统命令“ls -R”的实现
    [Linux环境编程] Linux系统命令“ls -l”的实现
    [C语言] 单向链表的构建以及翻转算法_图文详解(附双向链表构建代码)
  • 原文地址:https://www.cnblogs.com/yangchongxing/p/14041468.html
Copyright © 2020-2023  润新知