举个栗子
要访问的接口如下:
简要描述:
- 调用第三方文件上传服务
 
请求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;
    }