美文网首页
使用RestTemplate发送POST请求

使用RestTemplate发送POST请求

作者: 茶还是咖啡 | 来源:发表于2019-07-31 11:03 被阅读0次

    举个栗子

    要访问的接口如下:
    简要描述:

    • 调用第三方文件上传服务

    请求URL:

    • ${baseUrl}/file

    请求方式:

    • POST

    header

    参数名 必选 类型 说明
    app string 接入的应用名称
    time string 当前时间戳
    sign string MD5(appToken+time)

    参数:

    参数名 必选 类型 说明
    multipartFile MultipartFile 文件对象
    bucketName String 存储桶的名称

    返回示例

    {
        "code": 200,
        "message": "success",
        "data": {
            "url": "https://object-storage/6407740fbe5242fe94c5b72df5270f871550485315792.jpg"
        }
    }
    

    POST

        private String uploadToServer(File file) {
    
            //设置验签用的数据
            String timestamp = String.valueOf(System.currentTimeMillis());
            String sign = MD5Util.encode(appToken + timestamp);
    
            //设置请求头
            HttpHeaders headers = new HttpHeaders();
            headers.add("app", appName);
            headers.add("time", timestamp);
            headers.add("sign", sign);
    
            //设置content-type
            MediaType type = MediaType.parseMediaType("multipart/form-data");
            headers.setContentType(type);
    
            //设置请求体
            FileSystemResource fileSystemResource = new FileSystemResource(file);
            MultiValueMap<String, Object> form = new LinkedMultiValueMap<>();
            form.add("file", fileSystemResource);
            form.add("bucketName", bucket);
    
            //用HttpEntity封装整个请求报文
            HttpEntity<MultiValueMap<String, Object>> files = new HttpEntity<>(form, headers);
    
            //服务端返回的json格式:"
            String result = restTemplate.postForObject(url, files, String.class);
    
            //将服务端发送过来的json转换成map
            Map mapTypes = JSON.parseObject(result);
    
            if ((Integer) mapTypes.get("code") == 200) {
                JSONObject data = (JSONObject) mapTypes.get("data");
                return data.getString("url");
            }
            return null;
        }
    

    相关文章

      网友评论

          本文标题:使用RestTemplate发送POST请求

          本文链接:https://www.haomeiwen.com/subject/ojqzrctx.html