Файл POST для загрузки клиента Http - MultipartException: запрос Curren t не является составным запросом - PullRequest
0 голосов
/ 28 августа 2018

Мне нужно проверить загрузку файла с использованием httpclient 4.5

Для загрузки файла используется метод ниже:

public Response postwithFile(String url, File file) {
        HttpPost postMethod = new HttpPost(PropertyUtil.loadEnvironment().getBaseUrl() + url);
        postMethod.setHeader("Content-Type","multipart/form-data");
        FileBody fileBody = new FileBody(file, ContentType.MULTIPART_FORM_DATA);
        //_addAuthHeader(postMethod);
        MultipartEntityBuilder builder = MultipartEntityBuilder.create();
        // fileParamName should be replaced with parameter name your REST API expect.
        builder.addPart("upfile", fileBody);
        HttpEntity entity = builder.build();
        postMethod.setEntity(entity) ;
        return execute(postMethod);
    }

Файл не имеет расширения, но содержимое файла - JSON.

При вызове вышеуказанного метода я получаю сообщение об ошибке 500, за исключением следующих случаев в журналах сервера:

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.web.multipart.MultipartException: Curren
t request is not a multipart request                                                                                                                            
        at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:982)  

Может кто-нибудь помочь, если я не так делаю?

1 Ответ

0 голосов
/ 28 августа 2018

Использовать следующие

 builder.addBinaryBody(
        "upfile",
        new FileInputStream(file),
        ContentType.APPLICATION_OCTET_STREAM,
        file.getName()
    );

вместо

 builder.addPart("upfile", fileBody);

Также больше не требуется следующее, поскольку оно также устарело: -

FileBody fileBody = new FileBody(file, ContentType.MULTIPART_FORM_DATA);
...