2016-05-27 7 views
1

Я хотел бы загрузить файл на свой веб-сервер. Мой сервер реализует API RESTful. Чтобы загрузить файл, я должен передать 4 параметра: файл, имя_файла, проект, версияКак я могу загрузить файл с консоли с другими данными

Я хотел бы загрузить файл с помощью этих 3 параметров с консоли. Я попробовал этот

URL obj = new URL(MY_URL); 
HttpsURLConnection con = (HttpsURLConnection) obj.openConnection(); 

con.setRequestMethod("POST"); 

con.setDoOutput(true); 

ObjectOutputStream objectOutputStream = new ObjectOutputStream(con.getOutputStream()); 
ToSend send = new ToSend(); 
send.file = Files.readAllBytes(Paths.get("path")); 
send.file_name = "name"; 
send.project = "test"; 
send.version = "1"; 
objectOutputStream.writeObject(send); 
objectOutputStream.flush(); 
objectOutputStream.close(); 

и объект я отправить выглядеть следующим образом

class ToSend implements Serializable { 
    byte[] file; 

    String file_name; 

    String project; 

    String version; 
} 

я Exception in thread "main" java.io.IOException: Server returned HTTP response code: 400 for URL:

Если это важно мой сервер, написанный на Java + Spring и способ для этого имеет следующую подпись

@RequestMapping(value = "/", method = RequestMethod.POST) 
public @ResponseBody 
Response<Boolean> upload(
    @RequestParam("project") String project, 
    @RequestParam("version") String version, 
    @RequestParam("file_name") String fileName, 
    @RequestParam("file") MultipartFile file 
) throws ServiceException, BadFileExtension { 
    boolean success = storageService.uploadFile(file, project, fileName, version); 

    return builder.get(success); 
} 

ответ

Смежные вопросы