2016-09-02 2 views
0

Я хочу обновить файл на сервере. Пользователь может вводить данные и отправлять запрос на сервер для обновления содержимого файла. Для непустой строки следующий код работает, но когда пользователь вводит пустую строку, я получаю исключение ,

angularJS code 


$http.put("app/rest/updateMsg",fileContent) 

Spring controller code 

      @RequestMapping(value = "/updateMsg", method = RequestMethod.PUT) 
    public ResponseEntity<Boolean> updateMsg(@RequestBody String fileContent){ 

     //update file code 

    } 

Я нашел обходное решение для этого. Я явно устанавливаю filecontent в "", когда он пуст ("").

Любое другое решение для этого?

+0

В соответствии с соглашением об отдыхе всегда должен быть орган запроса для PUT – nikjohn

+4

Возможный дубликат [Требуется ли запрос HTTP PUT для включения тела?] (Http://stackoverflow.com/questions/1233372/ это-ан-HTTP-пут-запроса требуется к включать-а-тело) – nikjohn

ответ

0

Если я проектировал клиента, который действительно хотел отправить пустое тело, я бы прошел Content-Length: 0. Действительно, в зависимости от чтения определений метода POST и PUT (RFC 2616 9.5, 9.6) можно утверждать, что тело подразумевается, что требуется, но разумным способом не обрабатывать тело было бы принятие тела нулевой длины.

Семантически хотя запросы PUT должны иметь тела, даже если они пусты. Выдержка из here

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