@Override public HttpClientRequest header(CharSequence name, CharSequence value) { if (!hasSentHeaders()) { this.requestHeaders.set(name, value); } else { throw new IllegalStateException("Status and headers already sent"); } return this; }
@Override public HttpClientRequest addHeader(CharSequence name, CharSequence value) { if (!hasSentHeaders()) { this.requestHeaders.add(name, value); } else { throw new IllegalStateException("Status and headers already sent"); } return this; }
@Override public HttpClientRequest headers(HttpHeaders headers) { if (!hasSentHeaders()) { String host = requestHeaders.get(HttpHeaderNames.HOST); this.requestHeaders.set(headers); this.requestHeaders.set(HttpHeaderNames.HOST, host); } else { throw new IllegalStateException("Status and headers already sent"); } return this; }
@Override public HttpClientRequest addCookie(Cookie cookie) { if (!hasSentHeaders()) { this.requestHeaders.add(HttpHeaderNames.COOKIE, ClientCookieEncoder.STRICT.encode(cookie)); } else { throw new IllegalStateException("Status and headers already sent"); } return this; }
@Override public HttpClientRequest chunkedTransfer(boolean chunked) { if (!hasSentHeaders() && HttpUtil.isTransferEncodingChunked(nettyRequest) != chunked) { requestHeaders.remove(HttpHeaderNames.TRANSFER_ENCODING); HttpUtil.setTransferEncodingChunked(nettyRequest, chunked); } return this; }
@Override public NettyOutbound sendObject(Publisher<?> dataStream) { if (!HttpUtil.isTransferEncodingChunked(nettyRequest) && !HttpUtil.isContentLengthSet(nettyRequest) && !method().equals(HttpMethod.HEAD) && !hasSentHeaders()) { HttpUtil.setTransferEncodingChunked(nettyRequest, true); } return super.sendObject(dataStream); }