Spring WebClient для загрузки изображения в imgur rest api - PullRequest
0 голосов
/ 01 ноября 2018

Тестовый код JUnit для вызова imgur post image используя весенний веб-клиент для вызова imgur post image api файл загружается с URL-адреса и устанавливается в части тела в виде закодированной строки. Как настроить MultipartBody для загрузки изображения в imgur

@Before
    public void setUp() {
        webClient = WebClient.builder().baseUrl("https://api.imgur.com/3/")
                .build();
    }

@Test
    public void testupdateImages() throws MalformedURLException, IOException {

         HttpHeaders headers = new HttpHeaders();
            headers.setContentType(MediaType.MULTIPART_FORM_DATA);

            MultiValueMap<String, Object> body = new LinkedMultiValueMap<>();
            body.add("image", URLEncoder.encode(readFileFromUrl(URL),"UTF-8"));


        /*MultipartBodyBuilder builder = new MultipartBodyBuilder(); 
        builder.part("form field", "form value"); 

        builder.part("image",  URLEncoder.encode(readFileFromUrl(URL),"UTF-8")); 
        MultiValueMap<String, HttpEntity<?>>  multipartBody = builder.build(); 
        */
        Mono<Image> imagesFlux=  webClient.post();
        .uri("/image")
        .header("Authorization", "Client-ID encodedvalue")
        .header("Authorization", "Bearer encodedvalue")
        .contentType(MediaType.MULTIPART_FORM_DATA)
        .body(BodyInserters.fromMultipartData(body))
        .retrieve()
         .bodyToMono(Image.class);

        Image results=imagesFlux.block();
        System.out.println(results);

    }
...