Обязательный параметр MultipartFile 'files' отсутствует - MultipartyEntityBuilder - PullRequest
0 голосов
/ 30 сентября 2019

Я пытаюсь отправить множественность с помощью httpclient (Post) в модуль Spring, работающий на сервере. Так что это спокойный веб-сервис. Но мой код выдает ошибку. Не могли бы вы мне помочь?

Я уже пробовал это: Spring: загрузка файла RESTFUL Web Service

ФАЙЛ HTTPCLIENT: (ЗАПРОС ЗАПРОСА)

public class MultiFile {
public static void main(String args[]) throws ClientProtocolException, IOException
{
CloseableHttpClient httpclient = HttpClients.createDefault();
HttpPost httppost = new HttpPost("http://localhost:8080/RESTapi/student/addimage");
File file = new File("/Users/prabhu-pt3030/Desktop/eclipse-workspace-new/testing/target/classes/tes/javaFile123.txt");
MultipartEntityBuilder entitybuilder = MultipartEntityBuilder.create();
FileBody filebody = new FileBody(file, ContentType.MULTIPART_FORM_DATA);
entitybuilder.addPart("files", filebody);
HttpEntity mutiPartHttpEntity = entitybuilder.build();  
httppost.setEntity(mutiPartHttpEntity); 
HttpResponse httpresponse = httpclient.execute(httppost);
}
}

Пружинный контроллер:

@RequestMapping(value="/student/addimage",method=RequestMethod.POST,headers = "content-type=multipart/form-data")
public  void Addingimage(@RequestParam(value="files") MultipartFile files)
{
 //System.out.println(files.isEmpty());
}

Выход:

Required MultipartFile parameter 'files' is not present

1 Ответ

0 голосов
/ 30 сентября 2019

Я думаю, что есть проблема с ContentType.

Ваш контроллер не может найти какой-либо параметр с именем «files»

Попробуйте это

public class MultiFile {
    public static void main(String args[]) throws ClientProtocolException, IOException
    {
        CloseableHttpClient httpclient = HttpClients.createDefault();
        HttpPost httppost = new HttpPost("http://localhost:8080/RESTapi/student/addimage");
        File file = new File("/Users/prabhu-pt3030/Desktop/eclipse-workspace-new/testing/target/classes/tes/javaFile123.txt");
        MultipartEntityBuilder entitybuilder = MultipartEntityBuilder.create();
        FileBody filebody = new FileBody(file, ContentType.DEFAULT_BINARY);
        entitybuilder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
        entitybuilder.addPart("files", filebody);
        HttpEntity mutiPartHttpEntity = entitybuilder.build();  
        httppost.setEntity(mutiPartHttpEntity); 
        HttpResponse httpresponse = httpclient.execute(httppost);
    }
}

См. Здесь подробнее

...