gpt4 book ai didi

java - 具有文件和其他属性的 postForEntity 的其余模板

转载 作者:行者123 更新时间:2023-12-02 00:32:21 25 4
gpt4 key购买 nike

我想上传带有 REST 模板中的 Json 请求的文件以及其他属性。但我无法做到这一点。

@Bean
public RestTemplate getRestTemplate(RestTemplateBuilder restTemplateBuilder) {
return restTemplateBuilder.build();
}

@Autowired
private RestTemplate restTemplate;

@Scheduled(fixedDelay = 1000)
public void _do() throws Exception {
HashMap<String, String> documentProperties = new HashMap<>();
documentProperties.put("number", "123");


MultipartFile file = Somefile;


UploadDocumentRequest uploadDocumentRequest = new UploadDocumentRequest();
uploadDocumentRequest.setDocumentClass("DocClass");
uploadDocumentRequest.setDocumentProperties(documentProperties);
uploadDocumentRequest.setFile(file); ----???





ResponseEntity<String> value = restTemplate.postForEntity("URL", uploadDocumentRequest, String.class);

}

最佳答案

您必须创建带有 header 和正文的 HttpEntity

  1. 将内容类型 header 值设置为 MediaType.MULTIPART_FORM_DATA
  2. 将请求正文构建为 LinkedMultiValueMap 类的实例。
  3. 构造一个包装 header 和正文对象的 HttpEntity 实例,并使用 RestTemplate 发布它。

示例代码如下:

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

MultiValueMap<String, Object> body = new LinkedMultiValueMap<>();
body.add("file", getFileToBeUploaded());

HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(body, headers);

RestTemplate restTemplate = new RestTemplate();
ResponseEntity<String> response = restTemplate.postForEntity(serviveUrl, requestEntity, String.class);

关于java - 具有文件和其他属性的 postForEntity 的其余模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58002097/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com