Тестовый код 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);
}