Вы не можете этого сделать, поскольку отправка пустой строки в качестве тела - это то же самое, что не отправка тела в этом контексте и не отправка тела запрещена аннотацией @RequestBody
, поскольку значение по умолчанию для ее атрибута required
is true
.
Отправка пустой строки как тела - это то же самое, что не отправлять тело, потому что в HTTP запрос POST имеет раздел заголовка и раздел тела, разделенные CRLF, и разделение CRLF требуется как длякогда есть тело, а не его.Вот как это определено в спецификации HTTP, подробности см. https://www.w3.org/Protocols/rfc2616/rfc2616-sec5.html:
5 Запрос
Сообщение запроса от клиентасервер включает в первой строке этого сообщения метод, который должен применяться к ресурсу, идентификатор ресурса и используемую версию протокола.
Request = Request-Line ; Section 5.1
*(( general-header ; Section 4.5
| request-header ; Section 5.3
| entity-header ) CRLF) ; Section 7.1
CRLF
[ message-body ] ; Section 4.3
раздел заголовка, который вы применяетеобеспечить, а тело это то, что вы хотите иметь в виде пустой строки.Однако в любом случае вам нужно иметь CRLF на месте, поэтому запрос будет выглядеть примерно так:
POST /url HTTP/1.1
Content-Type: application/json; charset=UTF-8
Accept: application/json, application/javascript, text/javascript
Content-Length: 0
Host: localhost:8888
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.5.3 (Java/1.8.0_112)
Accept-Encoding: gzip,deflate
или, чтобы поместить [CRLF] там, где находится этот символ,
POST /url HTTP/1.1[CRLF]
Content-Type: application/json; charset=UTF-8[CRLF]
Accept: application/json, application/javascript, text/javascript[CRLF]
Content-Length: 0[CRLF]
Host: localhost:8888[CRLF]
Connection: Keep-Alive[CRLF]
User-Agent: Apache-HttpClient/4.5.3 (Java/1.8.0_112)[CRLF]
Accept-Encoding: gzip,deflate[CRLF]
[CRLF]
Поскольку длина содержимого равна нулю и разделитель CRLF всегда должен быть там, как бы вы сказали разницу между пустой строкой, отправленной как тело, и телом вообще не было отправлено?Дело в том, что вы не можете, в этом контексте это одно и то же, поэтому то, что вы просите, не может быть сделано.