【无标题】

可以对外部接口调用的方法有很多,给大家推荐一个简单版的,只需要引入两个常见依赖,不需要任何工具类.

引入依赖

 <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>5.0.8.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.reactivestreams</groupId>
            <artifactId>reactive-streams</artifactId>
            <version>1.0.1</version>
        </dependency>

代码如下

package jyh.test;


import org.springframework.core.io.FileSystemResource;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.http.client.MultipartBodyBuilder;
import org.springframework.util.MultiValueMap;
import org.springframework.web.client.RestTemplate;

import java.nio.file.Paths;


public class ApiTest {

    public void test(){
        RestTemplate restTemplate = new RestTemplate();

        //请求头
        HttpHeaders httpHeaders = new HttpHeaders();
        httpHeaders.setContentType(MediaType.APPLICATION_JSON);

        MultipartBodyBuilder multipartBodyBuilder = new MultipartBodyBuilder();

        //普通域
        //发送的参数
        multipartBodyBuilder.part("accountId","003393C6010006DA93F7");

        //文件域
        String url = "你的文件路径";
        multipartBodyBuilder.part("file",new FileSystemResource(String.valueOf(Paths.get(url))),MediaType.IMAGE_PNG);

        //build构建完整的消息体
        MultiValueMap<String, HttpEntity<?>> build = multipartBodyBuilder.build();

        /**
         * param1 路径
         * param2 请求体
         * param3 返回值类型
         */
        ResponseEntity<String> stringResponseEntity = restTemplate.postForEntity("http://117.158.24.187:8019/bcweb/webapi/GetVisitDataList", build, String.class);

        System.out.println(stringResponseEntity);
    }
}

返回结果


版权声明:本文为m0_60266941原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。