zoukankan      html  css  js  c++  java
  • 【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 "";
    }
  • 相关阅读:
    最短路总结
    关于最小生成树(并查集)prime和kruskal
    关于优先队列浅析(priority_queue)
    惨痛第十届蓝桥杯总结(附录蓝桥省赛知识点总结)-C++ B组
    初识STL vector
    sort();对结构体数组的排序
    Git 分支管理
    Git 远程仓库
    Matlab R2016a 破解教程
    Ubuntu卡在logo界面
  • 原文地址:https://www.cnblogs.com/yangchongxing/p/14041468.html
Copyright © 2011-2022 走看看