Как установить Mimetype для файла PDF в Java? - PullRequest
1 голос
/ 24 мая 2019

Мне нужно вызвать сторонний API с загрузкой PDF. когда я нажимаю на запрос от почтальона, я вижу, что mimeType - это «application / pdf», но когда я вызываю тот же API из моего кода, mimeType выглядит как «application / octet-stream».

Может кто-нибудь помочь мне настроить правильный mimeType.

public Boolean uploadApplicantDocument(UUID customerId, UUID applicantId) {
    String url = "https://hookb.in/OeEomZeKRjcyVylWxWZW";

    HttpHeaders headers = new HttpHeaders();
    headers.add("Authorization", API_TOKEN);
    List<DocumentsResponse> list = documentsClient.getDocuments(customerId);
    for(DocumentsResponse d : list){
        try {

            S3Object s3Object = s3FileManagementService.getS3Document((d.filePathKey);
            ByteArrayResource contentsAsResource = new ByteArrayResource(IOUtils.toByteArray(s3Object.getObjectContent())) {
                @Override
                public String getFilename()
                {
                    return filename;
                }
            };
            MultiValueMap<String, Object> request = new LinkedMultiValueMap<>();

            request.add("file", contentsAsResource);
            restTemplateExecutor.executeMultipartFormDataPostRequest(url, request, headers, Object.class);

        } catch (Exception e) {
            log.info("Failed to submit document for applicantId: " + applicantId);
            return false;
        }
    }
    return true;
}


public <T> T executeMultipartFormDataPostRequest(String url, MultiValueMap<String, Object> request, HttpHeaders httpHeaders, Class<T> responseClass){
    log.info("invoking the postMultipartFormDataRequest with url = " + url + " responseClass = " + responseClass);
    HttpEntity<MultiValueMap<String, Object>> requestEntity
            = new HttpEntity(request, httpHeaders);
    RestTemplate restTemplate = new RestTemplate();
    ResponseEntity<String> result = restTemplate
            .postForEntity(url, requestEntity, String.class);
    log.debug("Response from Server: " + result.getBody() + " with Status : " + result.getStatusCode().toString());
    return gson.fromJson(result.getBody(), responseClass);
}
...