【问题标题】:How I can pass .csv file in UriComponentsBuilder as queryparam如何将 UriComponentsBuilder 中的 .csv 文件作为查询参数传递
【发布时间】:2020-12-02 09:49:48
【问题描述】:

我正在使用 WebClient 来测试我的 Spring Boot 2 应用程序的控制器测试用例。 我想在 UriComponentsBuilder 的查询参数中传递 .csv 文件。

这是我的测试代码:

@Test
void testUploadDocument() {
    File file = new File("test/resources/db/restore/sql/system_code_master_list.csv");
    UriComponentsBuilder uri = UriComponentsBuilder.fromUriString(URL)
            .queryParam("file",new FileSystemResource(file))
            .queryParam("codeType","ICD_10");
    client.post().uri(
            uri.path("/uploadcsv").build().toUriString())
            .header("Authorization", "Bearer " + accessToken)
            .accept(MediaType.APPLICATION_JSON, MediaType.TEXT_PLAIN, MediaType.ALL)
            .exchange()
            .expectStatus().isOk()
            .expectBody()
            .isEmpty();
}

这是我的控制器方法:

@PostMapping(value = "/uploadcsv", consumes = MediaType.MULTIPART_FORM_DATA, produces = MediaType.APPLICATION_JSON)
public void uploadDocument (
        @RequestParam("file") MultipartFile fileParts,
        @RequestParam(name = "codeType", required = true) String codeType)throws IOException {}

如何在查询参数中传递文件? 提前致谢!

【问题讨论】:

    标签: java file-upload webclient


    【解决方案1】:
    @Test
    void testUploadDocument() {
        
        Resource file = new ClassPathResource("test/resources/db/restore/sql/system_code_master_list.csv");
        MultipartBodyBuilder builder = new MultipartBodyBuilder();
        builder.part("file", file);
    
        UriComponentsBuilder uri = UriComponentsBuilder.fromUriString(URL)
                .queryParam("codeType", "SNOMED_CT");
        client.post().uri(
                uri.path("/uploadcsv").build().toUriString())
                .header("Authorization", "Bearer " + accessToken)
                .contentType(MediaType.MULTIPART_FORM_DATA)
                .body(BodyInserters.fromMultipartData(builder.build()))
                .accept(MediaType.APPLICATION_JSON)
                .exchange()
                .expectStatus().isOk()
                .expectBody()
                .isEmpty();
       
    }
    

    【讨论】:

      猜你喜欢
      • 2021-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-04
      • 2022-12-15
      相关资源
      最近更新 更多