WebClient отправляет пустой составной запрос в службу FlaskJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 WebClient отправляет пустой составной запрос в службу Flask

Сообщение Anonymous »

У меня возникла проблема с отправкой запросов multipart/form-data из моей службы Java (с использованием WebClient, но той же истории с RestTemplate) в службу Flask. Кажется, что отправленное тело просто пусто, поскольку я получаю пустой Immutablemultidict([]). Я не думаю, что это важно, но я размещаю Java-приложение локально на своем компьютере, а приложение Flask запускается в контейнере докера. Кто-нибудь видит, в чем может быть проблема?
Контроллер:

Код: Выделить всё

@RequestMapping("/api/biometric")
@RequiredArgsConstructor
public class BiometricController {

private final BiometricClient biometricClient;

@PostMapping("/register")
public ResponseEntity registerUser(
@RequestParam("user_id") String userId,
@RequestParam("image") MultipartFile image) throws IOException {
String response = biometricClient.register(userId, image);
return ResponseEntity.ok(response);
}

}
Веб-клиент:

Код: Выделить всё

package com.fijalkoa.biosso.biometric;

import org.springframework.core.io.Resource;
import org.springframework.http.MediaType;
import org.springframework.http.client.MultipartBodyBuilder;
import org.springframework.stereotype.Component;
import org.springframework.util.MultiValueMap;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.reactive.function.BodyInserters;
import org.springframework.web.reactive.function.client.WebClient;
import org.springframework.web.reactive.function.client.WebClientResponseException;

import java.io.IOException;

@Component
public class BiometricClient {

private final WebClient webClient;

public BiometricClient() {
this.webClient = WebClient.builder()
.baseUrl("http://localhost:5001")
.build();
}

public String register(String userId, MultipartFile image) {
try {
Resource file = new org.springframework.core.io.ByteArrayResource(image.getBytes()) {
@Override
public String getFilename() {
return image.getOriginalFilename();
}
};

MultipartBodyBuilder builder = new MultipartBodyBuilder();
builder.part("user_id", userId); // string part
builder.part("image", file);
MultiValueMap

Подробнее здесь: [url]https://stackoverflow.com/questions/79817245/webclient-sending-an-empty-multipart-request-to-flask-service[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»