Spring遠隔呼び出しツール類RestTemplateUtils

39871 ワード

比較的完全なSpring遠隔呼び出しツールの種類のRestTemplateUtilsを発見しました.記録してください.
Springリモート起動Resetサービスツール類は、Get、Post、Put、Deleteの4つの呼び出し方式を含みます.
依存jar
springプロジェクトであれば、以下の依存性が必要です.

            org.springframework
            spring-context
            5.0.9.RELEASE
        
        
            org.springframework
            spring-web
            5.0.9.RELEASE
        
スプリングブックプロジェクトなら、以下の依存を加えればいいです.

			org.springframework.boot
			spring-boot-starter-web
		
ツールパッケージのRestTemplateUtils.java
パッケージが多すぎて、必要に応じて選別できます.

import java.util.Map;

import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.ResponseEntity;
import org.springframework.web.client.RestTemplate;

/**
 * RestTemplate        
 * 
 * @author Logan
 * @createDate 2019-02-08
 *
 */
public class RestTemplateUtils {

    private static final RestTemplate restTemplate = new RestTemplate();

    // ----------------------------------GET-------------------------------------------------------

    /**
     * GET      
     * 
     * @param url   URL
     * @param responseType       
     * @return ResponseEntity        
     */
    public static  ResponseEntity get(String url, Class responseType) {
        return restTemplate.getForEntity(url, responseType);
    }

    /**
     * GET      
     * 
     * @param url   URL
     * @param responseType       
     * @param uriVariables URL    ,       
     * @return ResponseEntity        
     */
    public static  ResponseEntity get(String url, Class responseType, Object... uriVariables) {
        return restTemplate.getForEntity(url, responseType, uriVariables);
    }

    /**
     * GET      
     * 
     * @param url   URL
     * @param responseType       
     * @param uriVariables URL    , Map  key  
     * @return ResponseEntity        
     */
    public static  ResponseEntity get(String url, Class responseType, Map uriVariables) {
        return restTemplate.getForEntity(url, responseType, uriVariables);
    }

    /**
     *      GET      
     * 
     * @param url   URL
     * @param headers      
     * @param responseType       
     * @param uriVariables URL    ,       
     * @return ResponseEntity        
     */
    public static  ResponseEntity get(String url, Map headers, Class responseType, Object... uriVariables) {
        HttpHeaders httpHeaders = new HttpHeaders();
        httpHeaders.setAll(headers);
        return get(url, httpHeaders, responseType, uriVariables);
    }

    /**
     *      GET      
     * 
     * @param url   URL
     * @param headers      
     * @param responseType       
     * @param uriVariables URL    ,       
     * @return ResponseEntity        
     */
    public static  ResponseEntity get(String url, HttpHeaders headers, Class responseType, Object... uriVariables) {
        HttpEntity> requestEntity = new HttpEntity<>(headers);
        return exchange(url, HttpMethod.GET, requestEntity, responseType, uriVariables);
    }

    /**
     *      GET      
     * 
     * @param url   URL
     * @param headers      
     * @param responseType       
     * @param uriVariables URL    , Map  key  
     * @return ResponseEntity        
     */
    public static  ResponseEntity get(String url, Map headers, Class responseType, Map uriVariables) {
        HttpHeaders httpHeaders = new HttpHeaders();
        httpHeaders.setAll(headers);
        return get(url, httpHeaders, responseType, uriVariables);
    }

    /**
     *      GET      
     * 
     * @param url   URL
     * @param headers      
     * @param responseType       
     * @param uriVariables URL    , Map  key  
     * @return ResponseEntity        
     */
    public static  ResponseEntity get(String url, HttpHeaders headers, Class responseType, Map uriVariables) {
        HttpEntity> requestEntity = new HttpEntity<>(headers);
        return exchange(url, HttpMethod.GET, requestEntity, responseType, uriVariables);
    }

    // ----------------------------------POST-------------------------------------------------------

    /**
     * POST      
     * 
     * @param url   URL
     * @param responseType       
     * @return
     */
    public static  ResponseEntity post(String url, Class responseType) {
        return restTemplate.postForEntity(url, HttpEntity.EMPTY, responseType);
    }

    /**
     * POST      
     * 
     * @param url   URL
     * @param requestBody      
     * @param responseType       
     * @return ResponseEntity        
     */
    public static  ResponseEntity post(String url, Object requestBody, Class responseType) {
        return restTemplate.postForEntity(url, requestBody, responseType);
    }

    /**
     * POST      
     * 
     * @param url   URL
     * @param requestBody      
     * @param responseType       
     * @param uriVariables URL    ,       
     * @return ResponseEntity        
     */
    public static  ResponseEntity post(String url, Object requestBody, Class responseType, Object... uriVariables) {
        return restTemplate.postForEntity(url, requestBody, responseType, uriVariables);
    }

    /**
     * POST      
     * 
     * @param url   URL
     * @param requestBody      
     * @param responseType       
     * @param uriVariables URL    , Map  key  
     * @return ResponseEntity        
     */
    public static  ResponseEntity post(String url, Object requestBody, Class responseType, Map uriVariables) {
        return restTemplate.postForEntity(url, requestBody, responseType, uriVariables);
    }

    /**
     *      POST      
     * 
     * @param url   URL
     * @param headers      
     * @param requestBody      
     * @param responseType       
     * @param uriVariables URL    ,       
     * @return ResponseEntity        
     */
    public static  ResponseEntity post(String url, Map headers, Object requestBody, Class responseType, Object... uriVariables) {
        HttpHeaders httpHeaders = new HttpHeaders();
        httpHeaders.setAll(headers);
        return post(url, httpHeaders, requestBody, responseType, uriVariables);
    }

    /**
     *      POST      
     * 
     * @param url   URL
     * @param headers      
     * @param requestBody      
     * @param responseType       
     * @param uriVariables URL    ,       
     * @return ResponseEntity        
     */
    public static  ResponseEntity post(String url, HttpHeaders headers, Object requestBody, Class responseType, Object... uriVariables) {
        HttpEntity requestEntity = new HttpEntity(requestBody, headers);
        return post(url, requestEntity, responseType, uriVariables);
    }

    /**
     *      POST      
     * 
     * @param url   URL
     * @param headers      
     * @param requestBody      
     * @param responseType       
     * @param uriVariables URL    , Map  key  
     * @return ResponseEntity        
     */
    public static  ResponseEntity post(String url, Map headers, Object requestBody, Class responseType, Map uriVariables) {
        HttpHeaders httpHeaders = new HttpHeaders();
        httpHeaders.setAll(headers);
        return post(url, httpHeaders, requestBody, responseType, uriVariables);
    }

    /**
     *      POST      
     * 
     * @param url   URL
     * @param headers      
     * @param requestBody      
     * @param responseType       
     * @param uriVariables URL    , Map  key  
     * @return ResponseEntity        
     */
    public static  ResponseEntity post(String url, HttpHeaders headers, Object requestBody, Class responseType, Map uriVariables) {
        HttpEntity requestEntity = new HttpEntity(requestBody, headers);
        return post(url, requestEntity, responseType, uriVariables);
    }

    /**
     *            POST      
     * 
     * @param url   URL
     * @param requestEntity            
     * @param responseType       
     * @param uriVariables URL    ,       
     * @return ResponseEntity        
     */
    public static  ResponseEntity post(String url, HttpEntity> requestEntity, Class responseType, Object... uriVariables) {
        return restTemplate.exchange(url, HttpMethod.POST, requestEntity, responseType, uriVariables);
    }

    /**
     *            POST      
     * 
     * @param url   URL
     * @param requestEntity            
     * @param responseType       
     * @param uriVariables URL    , Map  key  
     * @return ResponseEntity        
     */
    public static  ResponseEntity post(String url, HttpEntity> requestEntity, Class responseType, Map uriVariables) {
        return restTemplate.exchange(url, HttpMethod.POST, requestEntity, responseType, uriVariables);
    }

    // ----------------------------------PUT-------------------------------------------------------

    /**
     * PUT      
     * 
     * @param url   URL
     * @param responseType       
     * @param uriVariables URL    ,       
     * @return ResponseEntity        
     */
    public static  ResponseEntity put(String url, Class responseType, Object... uriVariables) {
        return put(url, HttpEntity.EMPTY, responseType, uriVariables);
    }

    /**
     * PUT      
     * 
     * @param url   URL
     * @param requestBody      
     * @param responseType       
     * @param uriVariables URL    ,       
     * @return ResponseEntity        
     */
    public static  ResponseEntity put(String url, Object requestBody, Class responseType, Object... uriVariables) {
        HttpEntity requestEntity = new HttpEntity(requestBody);
        return put(url, requestEntity, responseType, uriVariables);
    }

    /**
     * PUT      
     * 
     * @param url   URL
     * @param requestBody      
     * @param responseType       
     * @param uriVariables URL    , Map  key  
     * @return ResponseEntity        
     */
    public static  ResponseEntity put(String url, Object requestBody, Class responseType, Map uriVariables) {
        HttpEntity requestEntity = new HttpEntity(requestBody);
        return put(url, requestEntity, responseType, uriVariables);
    }

    /**
     *      PUT      
     * 
     * @param url   URL
     * @param headers      
     * @param requestBody      
     * @param responseType       
     * @param uriVariables URL    ,       
     * @return ResponseEntity        
     */
    public static  ResponseEntity put(String url, Map headers, Object requestBody, Class responseType, Object... uriVariables) {
        HttpHeaders httpHeaders = new HttpHeaders();
        httpHeaders.setAll(headers);
        return put(url, httpHeaders, requestBody, responseType, uriVariables);
    }

    /**
     *      PUT      
     * 
     * @param url   URL
     * @param headers      
     * @param requestBody      
     * @param responseType       
     * @param uriVariables URL    ,       
     * @return ResponseEntity        
     */
    public static  ResponseEntity put(String url, HttpHeaders headers, Object requestBody, Class responseType, Object... uriVariables) {
        HttpEntity requestEntity = new HttpEntity(requestBody, headers);
        return put(url, requestEntity, responseType, uriVariables);
    }

    /**
     *      PUT      
     * 
     * @param url   URL
     * @param headers      
     * @param requestBody      
     * @param responseType       
     * @param uriVariables URL    , Map  key  
     * @return ResponseEntity        
     */
    public static  ResponseEntity put(String url, Map headers, Object requestBody, Class responseType, Map uriVariables) {
        HttpHeaders httpHeaders = new HttpHeaders();
        httpHeaders.setAll(headers);
        return put(url, httpHeaders, requestBody, responseType, uriVariables);
    }

    /**
     *      PUT      
     * 
     * @param url   URL
     * @param headers      
     * @param requestBody      
     * @param responseType       
     * @param uriVariables URL    , Map  key  
     * @return ResponseEntity        
     */
    public static  ResponseEntity put(String url, HttpHeaders headers, Object requestBody, Class responseType, Map uriVariables) {
        HttpEntity requestEntity = new HttpEntity(requestBody, headers);
        return put(url, requestEntity, responseType, uriVariables);
    }

    /**
     *            PUT      
     * 
     * @param url   URL
     * @param requestEntity            
     * @param responseType       
     * @param uriVariables URL    ,       
     * @return ResponseEntity        
     */
    public static  ResponseEntity put(String url, HttpEntity> requestEntity, Class responseType, Object... uriVariables) {
        return restTemplate.exchange(url, HttpMethod.PUT, requestEntity, responseType, uriVariables);
    }

    /**
     *            PUT      
     * 
     * @param url   URL
     * @param requestEntity            
     * @param responseType       
     * @param uriVariables URL    , Map  key  
     * @return ResponseEntity        
     */
    public static  ResponseEntity put(String url, HttpEntity> requestEntity, Class responseType, Map uriVariables) {
        return restTemplate.exchange(url, HttpMethod.PUT, requestEntity, responseType, uriVariables);
    }

    // ----------------------------------DELETE-------------------------------------------------------

    /**
     * DELETE      
     * 
     * @param url   URL
     * @param responseType       
     * @param uriVariables URL    ,       
     * @return ResponseEntity        
     */
    public static  ResponseEntity delete(String url, Class responseType, Object... uriVariables) {
        return delete(url, HttpEntity.EMPTY, responseType, uriVariables);
    }

    /**
     * DELETE      
     * 
     * @param url   URL
     * @param responseType       
     * @param uriVariables URL    , Map  key  
     * @return ResponseEntity        
     */
    public static  ResponseEntity delete(String url, Class responseType, Map uriVariables) {
        return delete(url, HttpEntity.EMPTY, responseType, uriVariables);
    }

    /**
     * DELETE      
     * 
     * @param url   URL
     * @param requestBody      
     * @param responseType       
     * @param uriVariables URL    ,       
     * @return ResponseEntity        
     */
    public static  ResponseEntity delete(String url, Object requestBody, Class responseType, Object... uriVariables) {
        HttpEntity requestEntity = new HttpEntity(requestBody);
        return delete(url, requestEntity, responseType, uriVariables);
    }

    /**
     * DELETE      
     * 
     * @param url   URL
     * @param requestBody      
     * @param responseType       
     * @param uriVariables URL    , Map  key  
     * @return ResponseEntity        
     */
    public static  ResponseEntity delete(String url, Object requestBody, Class responseType, Map uriVariables) {
        HttpEntity requestEntity = new HttpEntity(requestBody);
        return delete(url, requestEntity, responseType, uriVariables);
    }

    /**
     *      DELETE      
     * 
     * @param url   URL
     * @param headers      
     * @param responseType       
     * @param uriVariables URL    ,       
     * @return ResponseEntity        
     */
    public static  ResponseEntity delete(String url, Map headers, Class responseType, Object... uriVariables) {
        HttpHeaders httpHeaders = new HttpHeaders();
        httpHeaders.setAll(headers);
        return delete(url, httpHeaders, responseType, uriVariables);
    }

    /**
     *      DELETE      
     * 
     * @param url   URL
     * @param headers      
     * @param responseType       
     * @param uriVariables URL    ,       
     * @return ResponseEntity        
     */
    public static  ResponseEntity delete(String url, HttpHeaders headers, Class responseType, Object... uriVariables) {
        HttpEntity requestEntity = new HttpEntity(headers);
        return delete(url, requestEntity, responseType, uriVariables);
    }

    /**
     *      DELETE      
     * 
     * @param url   URL
     * @param headers      
     * @param responseType       
     * @param uriVariables URL    , Map  key  
     * @return ResponseEntity        
     */
    public static  ResponseEntity delete(String url, Map headers, Class responseType, Map uriVariables) {
        HttpHeaders httpHeaders = new HttpHeaders();
        httpHeaders.setAll(headers);
        return delete(url, httpHeaders, responseType, uriVariables);
    }

    /**
     *      DELETE      
     * 
     * @param url   URL
     * @param headers      
     * @param responseType       
     * @param uriVariables URL    , Map  key  
     * @return ResponseEntity        
     */
    public static  ResponseEntity delete(String url, HttpHeaders headers, Class responseType, Map uriVariables) {
        HttpEntity requestEntity = new HttpEntity(headers);
        return delete(url, requestEntity, responseType, uriVariables);
    }

    /**
     *      DELETE      
     * 
     * @param url   URL
     * @param headers      
     * @param requestBody      
     * @param responseType       
     * @param uriVariables URL    ,       
     * @return ResponseEntity        
     */
    public static  ResponseEntity delete(String url, Map headers, Object requestBody, Class responseType, Object... uriVariables) {
        HttpHeaders httpHeaders = new HttpHeaders();
        httpHeaders.setAll(headers);
        return delete(url, httpHeaders, requestBody, responseType, uriVariables);
    }

    /**
     *      DELETE      
     * 
     * @param url   URL
     * @param headers      
     * @param requestBody      
     * @param responseType       
     * @param uriVariables URL    ,       
     * @return ResponseEntity        
     */
    public static  ResponseEntity delete(String url, HttpHeaders headers, Object requestBody, Class responseType, Object... uriVariables) {
        HttpEntity requestEntity = new HttpEntity(requestBody, headers);
        return delete(url, requestEntity, responseType, uriVariables);
    }

    /**
     *      DELETE      
     * 
     * @param url   URL
     * @param headers      
     * @param requestBody      
     * @param responseType       
     * @param uriVariables URL    , Map  key  
     * @return ResponseEntity        
     */
    public static  ResponseEntity delete(String url, Map headers, Object requestBody, Class responseType, Map uriVariables) {
        HttpHeaders httpHeaders = new HttpHeaders();
        httpHeaders.setAll(headers);
        return delete(url, httpHeaders, requestBody, responseType, uriVariables);
    }

    /**
     *      DELETE      
     * 
     * @param url   URL
     * @param headers      
     * @param requestBody      
     * @param responseType       
     * @param uriVariables URL    , Map  key  
     * @return ResponseEntity        
     */
    public static  ResponseEntity delete(String url, HttpHeaders headers, Object requestBody, Class responseType, Map uriVariables) {
        HttpEntity requestEntity = new HttpEntity(requestBody, headers);
        return delete(url, requestEntity, responseType, uriVariables);
    }

    /**
     *            DELETE      
     * 
     * @param url   URL
     * @param requestEntity            
     * @param responseType       
     * @param uriVariables URL    ,       
     * @return ResponseEntity        
     */
    public static  ResponseEntity delete(String url, HttpEntity> requestEntity, Class responseType, Object... uriVariables) {
        return restTemplate.exchange(url, HttpMethod.DELETE, requestEntity, responseType, uriVariables);
    }

    /**
     *            DELETE      
     * 
     * @param url   URL
     * @param requestEntity            
     * @param responseType       
     * @param uriVariables URL    , Map  key  
     * @return ResponseEntity        
     */
    public static  ResponseEntity delete(String url, HttpEntity> requestEntity, Class responseType, Map uriVariables) {
        return restTemplate.exchange(url, HttpMethod.DELETE, requestEntity, responseType, uriVariables);
    }

    // ----------------------------------    -------------------------------------------------------

    /**
     *       
     * 
     * @param url   URL
     * @param method       
     * @param requestEntity            
     * @param responseType       
     * @param uriVariables URL    ,       
     * @return ResponseEntity        
     */
    public static  ResponseEntity exchange(String url, HttpMethod method, HttpEntity> requestEntity, Class responseType, Object... uriVariables) {
        return restTemplate.exchange(url, method, requestEntity, responseType, uriVariables);
    }

    /**
     *       
     * 
     * @param url   URL
     * @param method       
     * @param requestEntity            
     * @param responseType       
     * @param uriVariables URL    , Map  key  
     * @return ResponseEntity        
     */
    public static  ResponseEntity exchange(String url, HttpMethod method, HttpEntity> requestEntity, Class responseType, Map uriVariables) {
        return restTemplate.exchange(url, method, requestEntity, responseType, uriVariables);
    }

    /**
     *   RestTemplate    ,        
     * 
     * @return RestTemplate    
     */
    public static RestTemplate getRestTemplate() {
        return restTemplate;
    }

}
テストの例は以下の通りです

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.apache.commons.io.FileUtils;
import org.junit.Test;
import org.springframework.core.io.FileSystemResource;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;

import com.alibaba.fastjson.JSONObject;

import utils.RestTemplateUtils;

/**
 * RestTemplate      
 * 
 * @author Logan
 * @createDate 2019-02-08
 *
 */
public class RestTest {

    /**
     *   HTTPS       
     */
    @Test
    public void test() {
        String url = "https://www.cnblogs.com/{id}/p/{pageName}.html";
        String id = "jonban";
        List pages = new ArrayList<>();
        pages.add("rest");
        pages.add("jsoup");
        pages.add("sms");
        pages.add("rememberMe");
        pages.add("properties");
        pages.add("async");

        for (String pageName : pages) {
            ResponseEntity entity = RestTemplateUtils.get(url, String.class, id, pageName);
            System.out.println(entity.getStatusCode());
            System.out.println(entity.getBody());
        }

    }

    /**
     *         Headers GET  ,POST  
     */
    @Test
    public void testHeaders() {
        String url = "http://127.0.0.1:8080/test/Logan?age=16";
        Map headers = new HashMap<>();
        headers.put("appId", "Basic MyAppId");
        ResponseEntity entity = RestTemplateUtils.get(url, headers, String.class);
        System.out.println(entity.getStatusCode());
        System.out.println(entity.getBody());
    }

    /**
     *          POST  
     */
    @Test
    public void sayHello() {
        String url = "http://127.0.0.1:8080/test/sayHello";
        MultiValueMap requestBody = new LinkedMultiValueMap<>();
        requestBody.add("name", "Logan");
        requestBody.add("age", 12);
        ResponseEntity response = RestTemplateUtils.post(url, requestBody, JSONObject.class);

        System.out.println(response.getStatusCode());
        System.out.println(response.getBody());
    }

    /**
     *   JSON     Body  POST  
     */
    @Test
    public void sayHelloBody() {
        String url = "http://127.0.0.1:8080/test/sayHelloBody";
        JSONObject requestBody = new JSONObject();
        requestBody.put("name", "Logan");
        requestBody.put("age", 16);
        ResponseEntity response = RestTemplateUtils.post(url, requestBody, JSONObject.class);

        System.out.println(response.getStatusCode());
        System.out.println(response.getBody());
    }

    /**
     *       
     */
    @Test
    public void uploadFile() {
        String url = "http://127.0.0.1:8080/test/uploadFile";
        MultiValueMap requestBody = new LinkedMultiValueMap<>();
        requestBody.add("uploadPath", "G:\\Temp\\Test");
        requestBody.add("file", new FileSystemResource("G:\\Java\\JavaStyle.xml"));
        requestBody.add("file2", new FileSystemResource("G:\\Java\\jad.exe"));

        ResponseEntity response = RestTemplateUtils.post(url, requestBody, JSONObject.class);

        System.out.println(response.getStatusCode());
        System.out.println(response.getBody());
    }

    @Test
    public void downloadFile() {
        try {
            String url = "http://127.0.0.1:8080/test/downloadFile?filePath={filePath}&fileName={fileName}";

            String filePath = "G:\\Java";
            String fileName = "JavaStyle.xml";

            ResponseEntity response = RestTemplateUtils.get(url, byte[].class, filePath, fileName);
            System.out.println(response.getStatusCode());
            System.out.println(response.getHeaders().getContentType());

            //          ,     
            if ("text/html;charset=UTF-8".equals(response.getHeaders().getContentType().toString())) {
                System.out.println(new String(response.getBody(), "UTF-8"));
            }

            //            
            else {

                File file = new File("G:\\Temp\\Test", fileName);
                if (HttpStatus.OK.equals(response.getStatusCode())) {
                    FileUtils.writeByteArrayToFile(file, response.getBody());
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        }

    }

    /**
     *          fastjson-1.2.56.jar
     */
    @Test
    public void downloadFile2() {
        try {
            String url = "http://central.maven.org/maven2/com/alibaba/fastjson/1.2.56/fastjson-1.2.56.jar";

            ResponseEntity response = RestTemplateUtils.get(url, byte[].class);
            System.out.println(response.getStatusCode());

            //       ,               
            File file = new File("G:\\Temp\\Test\\fastjson-1.2.56.jar");
            if (HttpStatus.OK.equals(response.getStatusCode())) {
                FileUtils.writeByteArrayToFile(file, response.getBody());
            }
        } catch (IOException e) {
            e.printStackTrace();
        }

    }

}
リモートサーバインターフェースの例をテストします.
  • 新規Mavenプロジェクトtest-server
  • pom.xml
  • 
    
    
        4.0.0
        com.java
        test-server
        1.0.0
    
        
            org.springframework.boot
            spring-boot-starter-parent
            2.0.5.RELEASE
        
    
    
        
    
            
            
                org.springframework.boot
                spring-boot-starter-web
            
    
    
            
                commons-fileupload
                commons-fileupload
                1.3.3
            
            
                com.alibaba
                fastjson
                1.2.56
            
    
    
    
            
            
                org.springframework
                springloaded
                1.2.8.RELEASE
            
            
                org.springframework.boot
                spring-boot-devtools
            
    
        
    
        
            ${project.artifactId}
            
                
                    org.apache.maven.plugins
                    maven-compiler-plugin
                    
                        1.8
                        1.8
                        UTF-8
                    
                
    
                
                    org.springframework.boot
                    spring-boot-maven-plugin
                    
                        
                            
                                repackage
                            
                        
                    
                
            
        
    
    
  • TestServer Starter.java
  • 
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    /**
     *          
     * 
     * @author Logan
     * @createDate 2019-02-08
     *
     */
    @SpringBootApplication
    public class TestServerStarter {
    
        public static void main(String[] args) {
            SpringApplication.run(TestServerStarter.class, args);
        }
    
    }
    
  • Person.java
  • 
    /**
     *      
     * 
     * @author Logan
     * @createDate 2019-02-08
     *
     */
    public class Person {
    
        private String name;
    
        private int age;
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public int getAge() {
            return age;
        }
    
        public void setAge(int age) {
            this.age = age;
        }
    
        @Override
        public String toString() {
            return "Person [name=" + name + ", age=" + age + "]";
        }
    
    }
    
  • UploadConfig.java
  • 
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.web.multipart.commons.CommonsMultipartResolver;
    
    /**
     *       
     * 
     * @author Logan
     * @createDate 2019-02-08
     *
     */
    @Configuration
    public class UploadConfig {
    
        @Bean
        public CommonsMultipartResolver multipartResolver() {
            CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver();
    
            //            4GB
            multipartResolver.setMaxUploadSize(4294967296l);
            return multipartResolver;
        }
    
    }
    
  • TestController.java
  • 
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.io.OutputStream;
    import java.io.PrintWriter;
    import java.net.URLEncoder;
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import org.apache.commons.io.IOUtils;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.PathVariable;
    import org.springframework.web.bind.annotation.PostMapping;
    import org.springframework.web.bind.annotation.RequestBody;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestParam;
    import org.springframework.web.bind.annotation.RestController;
    import org.springframework.web.multipart.commons.CommonsMultipartFile;
    
    import com.java.entity.Person;
    
    /**
     *           
     * 
     * @author Logan
     * @createDate 2019-02-08
     *
     */
    @RestController
    @RequestMapping("/test")
    public class TestController {
    
        @Autowired
        private HttpServletRequest request;
    
        @GetMapping("/{name}")
        public Person test(@PathVariable("name") String name, int age) {
            String appId = request.getHeader("appId");
            System.out.println("appId: " + appId);
    
            Person person = new Person();
            person.setName(name);
            person.setAge(age);
            System.out.println(person);
    
            return person;
        }
    
        @PostMapping("/sayHello")
        public Person sayHello(Person person) {
            System.out.println(person);
            return person;
        }
    
        @PostMapping("/sayHelloBody")
        public Person sayHelloBody(@RequestBody Person person) {
            System.out.println(person);
            return person;
        }
    
        @RequestMapping("/uploadFile")
        public Map uploadFile(@RequestParam(required = true) CommonsMultipartFile file, @RequestParam(required = true) CommonsMultipartFile file2, String uploadPath) {
            Map result = new HashMap();
            try {
    
                //     
                File path = new File(uploadPath);
                if (!path.isDirectory() || !path.exists()) {
                    path.mkdirs();
                }
                File outFile = new File(uploadPath, file.getOriginalFilename());
                file.transferTo(outFile);
    
                File outFile2 = new File(uploadPath, file2.getOriginalFilename());
                file2.transferTo(outFile2);
    
                List files = new ArrayList<>();
                files.add(outFile.getAbsolutePath());
                files.add(outFile2.getAbsolutePath());
    
                result.put("successful", true);
                result.put("files", files);
            } catch (Exception e) {
                e.printStackTrace();
                result.put("successful", false);
                result.put("msg", e.getMessage());
            }
            return result;
        }
    
        @GetMapping("/downloadFile")
        public void downloadFile(HttpServletResponse response, String filePath, String fileName) {
            File file = new File(filePath, fileName);
            if (file.exists() && file.isFile()) {
    
                try (
                        OutputStream out = response.getOutputStream();
                        FileInputStream in = new FileInputStream(file);
                ) {
    
                    //       URL  ,      
                    fileName = URLEncoder.encode(fileName, "UTF-8");
    
                    //    URLEncoder.encode      "+",      "%20",         
                    fileName = fileName.replace("+", "%20");
    
                    // "+" URLEncoder.encode      "%2B",      "+",       "+"
                    fileName = fileName.replace("%2B", "+");
                    response.setContentType("application/x-msdownload;charset=UTF-8");
                    response.setHeader("Content-Disposition", "attachment; filename=" + fileName);
                    IOUtils.copy(in, out);
                } catch (FileNotFoundException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
    
            //            
            else {
                response.setContentType("text/html;charset=UTF-8");
    
                try (
                        PrintWriter writer = response.getWriter();
                ) {
                    writer.write("       ,      !");
                    writer.flush();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
    
        }
    
    }
    
  • はTestServer Starter.javaを実行し、テストサーバを起動する.
  • 追加
    要求方式はpostで、Content-Type=aplication/x-wn-form-urlencoded
    JSONObject requestBody = JSONObject.parseObject(JSONObject.toJSONString(liveModel));
            requestBody.add("catalogId");
            requestBody.add("roomId");
            requestBody.add("courseId");
            ResponseEntity response = null;
            try {
                HttpHeaders headers = new HttpHeaders();
                headers.add("Content-Type", "application/x-www-form-urlencoded");
                HttpEntity> r = new HttpEntity<>(getParamaters(requestBody), headers);
    
                response = RestTemplateUtils.post(createRoom, r, JSONObject.class);
            } catch (Throwable e) {
                e.printStackTrace();
                throw new ServiceException(e.getMessage());
            }
            Map retMap = JSONUtil.parseJSON2Map(Objects.requireNonNull(response.getBody()));
            if (retMap.get("status") != "1") {
                throw new ServiceException((String) retMap.get("message"));
            }
            Map payload = (Map) retMap.get("payload");
            log.info("   payload:" + payload.toString());
    
    
    private MultiValueMap getParamaters(JSONObject jsonObject) {
    
            MultiValueMap postParameters = new LinkedMultiValueMap<>();
            jsonObject.keySet().forEach(key -> postParameters.add(key, jsonObject.get(key)));
            return postParameters;
        }