List of usage examples for io.netty.handler.codec.http HttpHeaders setDateHeader
@Deprecated public static void setDateHeader(HttpMessage message, CharSequence name, Iterable<Date> values)
From source file:com.barchart.netty.server.http.handlers.StaticResourceHandler.java
License:BSD License
@Override public void handle(final HttpServerRequest request) throws IOException { try {//from ww w .j a va 2s . com final Resource resource = resolver.resolve(request.getPathInfo()); if (resource.contentType() != null) request.response().setContentType(resource.contentType()); // Set Cache-Control: public request.response().headers().add(HttpHeaders.Names.CACHE_CONTROL, HttpHeaders.Values.PUBLIC); if (!handleCache(request, resource)) { // Set modification time HttpHeaders.setDateHeader(request.response(), HttpHeaders.Names.LAST_MODIFIED, new Date(resource.modified())); request.response().setContentLength((int) resource.size()); // Chunked response for (potentially) large files if (resource.size() == 0 || resource.size() > 8192) request.response().setChunkSize(8192); IOUtils.copy(resource.stream(), request.response().getOutputStream()); } } catch (final IOException e) { request.response().setStatus(HttpResponseStatus.INTERNAL_SERVER_ERROR); request.response().write("500 Server Error"); } catch (final ResourceNotFoundException e) { request.response().setStatus(HttpResponseStatus.NOT_FOUND); request.response().write("404 Not Found"); } finally { request.response().finish(); } }
From source file:com.bloom.zerofs.rest.NettyResponseChannel.java
License:Open Source License
/** * Sets the value of response headers after making sure that the response metadata is not already sent. * @param headerName The name of the header. * @param headerValue The intended value of the header. * @throws IllegalArgumentException if any of {@code headerName} or {@code headerValue} is null. * @throws IllegalStateException if response metadata has already been written to the channel. *//*from w ww.ja va2 s . c om*/ private void setResponseHeader(String headerName, Object headerValue) { if (headerName != null && headerValue != null) { long startTime = System.currentTimeMillis(); if (headerValue instanceof Date) { HttpHeaders.setDateHeader(responseMetadata, headerName, (Date) headerValue); } else { HttpHeaders.setHeader(responseMetadata, headerName, headerValue); } if (responseMetadataWriteInitiated.get()) { nettyMetrics.deadResponseAccessError.inc(); throw new IllegalStateException( "Response metadata changed after it has already been written to the channel"); } else { logger.trace("Header {} set to {} for channel {}", headerName, responseMetadata.headers().get(headerName), ctx.channel()); nettyMetrics.headerSetTimeInMs.update(System.currentTimeMillis() - startTime); } } else { throw new IllegalArgumentException( "Header name [" + headerName + "] or header value [" + headerValue + "] null"); } }
From source file:com.ebay.jetstream.http.netty.server.DefaultHttpServletResponse.java
License:MIT License
@Override public void setDateHeader(String arg0, long arg1) { HttpHeaders.setDateHeader(m_nettyhttpresp, arg0, new Date(arg1)); }
From source file:com.github.ambry.rest.NettyResponseChannel.java
License:Open Source License
/** * Sets the value of response headers after making sure that the response metadata is not already sent. * @param headerName The name of the header. * @param headerValue The intended value of the header. * @throws IllegalArgumentException if any of {@code headerName} or {@code headerValue} is null. * @throws IllegalStateException if response metadata has already been written to the channel. *//* ww w .ja v a 2 s . c om*/ private void setResponseHeader(String headerName, Object headerValue) { if (headerName != null && headerValue != null) { long startTime = System.currentTimeMillis(); if (headerValue instanceof Date) { HttpHeaders.setDateHeader(responseMetadata, headerName, (Date) headerValue); } else { HttpHeaders.setHeader(responseMetadata, headerName, headerValue); } if (responseMetadataWritten.get()) { nettyMetrics.deadResponseAccessError.inc(); throw new IllegalStateException( "Response metadata changed after it has already been written to the channel"); } else { logger.trace("Header {} set to {} for channel {}", headerName, responseMetadata.headers().get(headerName), ctx.channel()); nettyMetrics.headerSetTimeInMs.update(System.currentTimeMillis() - startTime); } } else { throw new IllegalArgumentException( "Header name [" + headerName + "] or header value [" + headerValue + "] null"); } }
From source file:com.github.ambry.rest.NettyResponseChannelTest.java
License:Open Source License
/** * Creates a {@link HttpRequest} with some headers set that will be checked on response. * @param httpMethod the {@link HttpMethod} desired. * @param uri the URI to hit.// ww w . j av a 2s . c o m * @return a link {@link HttpRequest} with some headers set. */ private HttpRequest createRequestWithHeaders(HttpMethod httpMethod, String uri) { long currentTime = System.currentTimeMillis(); HttpRequest request = RestTestUtils.createRequest(httpMethod, uri, null); HttpHeaders.setHeader(request, HttpHeaders.Names.CONTENT_TYPE, "dummy/content-type"); HttpHeaders.setHeader(request, HttpHeaders.Names.CONTENT_LENGTH, 100); HttpHeaders.setHeader(request, HttpHeaders.Names.LOCATION, "dummyLocation"); HttpHeaders.setDateHeader(request, HttpHeaders.Names.LAST_MODIFIED, new Date(currentTime)); HttpHeaders.setDateHeader(request, HttpHeaders.Names.EXPIRES, new Date(currentTime + 1)); HttpHeaders.setHeader(request, HttpHeaders.Names.CACHE_CONTROL, "dummyCacheControl"); HttpHeaders.setHeader(request, HttpHeaders.Names.PRAGMA, "dummyPragma"); HttpHeaders.setDateHeader(request, HttpHeaders.Names.DATE, new Date(currentTime + 2)); HttpHeaders.setHeader(request, MockNettyMessageProcessor.CUSTOM_HEADER_NAME, "customHeaderValue"); return request; }
From source file:io.reactivex.netty.protocol.http.client.HttpRequestHeaders.java
License:Apache License
public void setDateHeader(CharSequence name, Date value) { HttpHeaders.setDateHeader(nettyRequest, name, value); }
From source file:io.reactivex.netty.protocol.http.client.HttpRequestHeaders.java
License:Apache License
public void setDateHeader(CharSequence name, Iterable<Date> values) { HttpHeaders.setDateHeader(nettyRequest, name, values); }
From source file:io.reactivex.netty.protocol.http.client.HttpRequestHeaders.java
License:Apache License
public void setDateHeader(String name, Date value) { HttpHeaders.setDateHeader(nettyRequest, name, value); }
From source file:io.reactivex.netty.protocol.http.client.HttpRequestHeaders.java
License:Apache License
public void setDateHeader(String name, Iterable<Date> values) { HttpHeaders.setDateHeader(nettyRequest, name, values); }
From source file:io.reactivex.netty.protocol.http.server.HttpResponseHeaders.java
License:Apache License
public void setDateHeader(CharSequence name, Date value) { HttpHeaders.setDateHeader(nettyResponse, name, value); }