400 Bad Request, RESTTEMPLATE

179
05 декабря 2017, 20:37

Использую android устройство и сервер на spring mvc + maven Пытаюсь выслать данные + файл на сервер при помощи RestTeamplate. С просто данными все красиво вышло, а вот с файлом проблемы. Руководствуюсь вот этим туториалом

Клиент:

protected AnotherPostDTO doInBackground(Void... params) {
    Resource resource = new ClassPathResource("res/drawable/bbb.png");
    formData = new LinkedMultiValueMap<String, Object>();
    formData.add("owners_id", "1");
    formData.add("file", resource);
    try {
        HttpHeaders requestHeaders = new HttpHeaders();
        requestHeaders.setContentType(MediaType.MULTIPART_FORM_DATA);
        HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<MultiValueMap<String, Object>>(formData, requestHeaders);
        ArrayList<HttpMessageConverter<?>> converters = new ArrayList<HttpMessageConverter<?>>(Arrays.asList(new MappingJackson2HttpMessageConverter(), new FormHttpMessageConverter()));
        RestTemplate restTemplate = new RestTemplate(converters);
        restTemplate.getMessageConverters().add(new MappingJackson2HttpMessageConverter());
        restTemplate.getMessageConverters().add(new FormHttpMessageConverter());
        return restTemplate.postForObject(Constants.URLs.UPLOAD_FILE, requestEntity, AnotherPostDTO.class);
    } catch (Exception e) {
        Log.e(TAG, e.getMessage(), e);
    }
    return post;
}

Сервер:

@RequestMapping(value = "upload", method = RequestMethod.POST, headers = "Content-Type=multipart/form-data")
public @ResponseBody ImgPost handleFormUpload(@RequestParam("owners_id") String owners_id, @RequestParam("file") MultipartFile file) {
    System.out.println("file upload");
    ImgPost post = new ImgPost();
    if (!file.isEmpty()) {
        byte[] bytes = null;
        try {
            bytes = file.getBytes();
        } catch (IOException e) {
            System.out.println("error processing uploaded file");
        }
        return post; //ok
    } else {
        return post;//fail
    }
}

Бин:

@Bean
MultipartConfigElement multipartConfigElement() {
    MultipartConfigFactory factory = new MultipartConfigFactory();
    factory.setMaxFileSize("128KB");
    factory.setMaxRequestSize("128KB");
    return factory.createMultipartConfig();
}

Ошибка у клиента:

W/RestTemplate: POST request for "http://192.168.0.250:8081/server/upload" resulted in 400 (Bad Request); invoking error handler
 E/ContentValues: 400 Bad Request org.springframework.web.client.HttpClientErrorException: 400 Bad Request
READ ALSO
Проблема при подсчете Double калькулятора

Проблема при подсчете Double калькулятора

При чтении строки функция доходит до точки и зависает

190
Относительный путь к файлу eclipse

Относительный путь к файлу eclipse

ПриветствуюЕсть java-servelt, разрабатываемый в eclipse

154
Java 8 Stream API: NPE при создании Map при значениях null

Java 8 Stream API: NPE при создании Map при значениях null

Одним моим коллегой был обнаружен баг в Stream API: если создавать Map из stream() при помощиcollect(Collectors

152
Не дергается функция на resize окна

Не дергается функция на resize окна

Есть проблемаКогда размер экрана меньше 1023px, то фильтры скрываются и увидеть их можно щелкнув по кнопке "Filters"

226