可以对外部接口调用的方法有很多,给大家推荐一个简单版的,只需要引入两个常见依赖,不需要任何工具类.
引入依赖
<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版权协议,转载请附上原文出处链接和本声明。