首页 > 解决方案 > 如何使用 RestTemplate 在自定义对象中发送 MultiPart

问题描述

我有一个自定义对象 BasicDetailDomain,它的属性包括 Multipart。要求是使用 RestTemplate 调用 API。

  @PostMapping(value = "/postbasicdetails")
    public ResponseEntity<ActionResponse<?>> postBasicDetails(BasicDetailDomain details) throws 
    IOException{

    //logic here 

    }

    Here is my Code 

BasicDetailDomain basicDetailDomain = createBasicdetails(); 
    HttpEntity<BasicDetailDomain> entity = new HttpEntity(basicDetailDomain, headers);
    ResponseEntity<Object> response = 
    restTemplate.exchange(formFullURLWithPort(port,"/rpa/postbasicdetails"),HttpMethod.POST, entity, 
    Object.class); 
    assertEquals(HttpStatus.SC_INTERNAL_SERVER_ERROR, response.getStatusCode().value());




   //createBasicdetails
   private BasicDetailDomain createBasicdetails()
    {
    MultipartFile multipartFile = null;
    try {
    multipartFile = new MockMultipartFile("payterm.xlsx", new FileInputStream(new 
    File("src/test/resources/payterm.xlsx")));
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    BasicDetailDomain basicDetailDomain = new BasicDetailDomain();
    basicDetailDomain.setClientID("oooo");
    basicDetailDomain.setEnvironment("UAT");
    basicDetailDomain.setPassword("kkk");
    basicDetailDomain.setUsername("mmmm");
    basicDetailDomain.setUseCaseID("uuuu");
    basicDetailDomain.setFile(multipartFile);
    return basicDetailDomain;
    }

在控制器端,每个属性都为空,当我在 Queryparm 中传递属性时,它会反映在控制器上。无法理解发生了什么。

标签: javaspring-bootresttemplate

解决方案


推荐阅读