Example usage for io.netty.handler.codec.http HttpResponseStatus code

List of usage examples for io.netty.handler.codec.http HttpResponseStatus code

Introduction

In this page you can find the example usage for io.netty.handler.codec.http HttpResponseStatus code.

Prototype

int code

To view the source code for io.netty.handler.codec.http HttpResponseStatus code.

Click Source Link

Usage

From source file:com.chiorichan.http.HttpResponseWrapper.java

License:Mozilla Public License

public void sendError(HttpResponseStatus status, String httpMsg, String msg) throws IOException {
    if (stage == HttpResponseStage.CLOSED)
        throw new IllegalStateException(
                "You can't access sendError method within this HttpResponse because the connection has been closed.");

    if (httpMsg == null)
        httpMsg = status.reasonPhrase().toString();

    // NetworkManager.getLogger().info( ConsoleColor.RED + "HttpError{httpCode=" + status.code() + ",httpMsg=" + httpMsg + ",subdomain=" + request.getSubDomain() + ",domain=" + request.getDomain() + ",uri=" + request.getUri() +
    // ",remoteIp=" + request.getIpAddr() + "}" );

    if (msg == null || msg.length() > 100)
        log.log(Level.SEVERE, "%s {code=%s}", httpMsg, status.code());
    else/*ww w .  j  av a 2  s .c  o  m*/
        log.log(Level.SEVERE, "%s {code=%s,reason=%s}", httpMsg, status.code(), msg);

    resetBuffer();

    // Trigger an internal Error Event to notify plugins of a possible problem.
    ErrorEvent event = new ErrorEvent(request, status.code(), httpMsg);
    EventBus.instance().callEvent(event);

    // TODO Make these error pages a bit more creative and/or informational to developers.

    if (event.getErrorHtml() != null && !event.getErrorHtml().isEmpty()) {
        print(event.getErrorHtml());
        sendResponse();
    } else {
        boolean printHtml = true;

        if (htaccess != null && htaccess.getErrorDocument(status.code()) != null) {
            String resp = htaccess.getErrorDocument(status.code()).getResponse();

            if (resp.startsWith("/")) {
                sendRedirect(request.getBaseUrl() + resp);
                printHtml = false;
            } else if (resp.startsWith("http")) {
                sendRedirect(resp);
                printHtml = false;
            } else
                httpMsg = resp;
        }

        if (printHtml) {
            println("<html><head><title>" + status.code() + " - " + httpMsg + "</title></head><body>");
            println("<h1>" + status.code() + " - " + httpMsg + "</h1>");

            if (msg != null && !msg.isEmpty())
                println("<p>" + msg + "</p>");

            println("<hr>");
            println("<small>Running <a href=\"https://github.com/ChioriGreene/ChioriWebServer\">"
                    + Versioning.getProduct() + "</a> Version " + Versioning.getVersion() + " (Build #"
                    + Versioning.getBuildNumber() + ")<br />" + Versioning.getCopyright() + "</small>");
            println("</body></html>");

            sendResponse();
        }
    }
}

From source file:com.couchbase.client.core.message.config.RestApiResponse.java

License:Apache License

/**
 * Create a new {@link RestApiResponse}.
 *
 * @param request the original request.//from w w  w . jav  a2s. c  o  m
 * @param status the response status (code and message).
 * @param body the response body, as a string.
 * @param headers the response headers.
 */
public RestApiResponse(RestApiRequest request, HttpResponseStatus status, HttpHeaders headers, String body) {
    super(ResponseStatusConverter.fromHttp(status.code()), request);
    this.httpStatus = status;
    this.headers = headers;
    this.body = body;
}

From source file:com.groupon.vertx.utils.HealthcheckHandler.java

License:Apache License

protected void processHeartBeatResponse(Boolean exists, HttpServerRequest request, long startTime) {
    HttpResponseStatus status;
    final boolean includeBody = !request.method().equals(HttpMethod.HEAD);

    if (exists) {
        status = HttpResponseStatus.OK;/* w ww  .j  a va 2 s .c o m*/
    } else {
        status = HttpResponseStatus.SERVICE_UNAVAILABLE;
    }

    setCommonHttpResponse(request, status);

    String responseBody = status.reasonPhrase();
    if (includeBody) {
        request.response().end(responseBody);
    } else {
        request.response().putHeader(HttpHeaderNames.CONTENT_LENGTH, Integer.toString(responseBody.length()));
        request.response().end();
    }

    long totalTime = System.currentTimeMillis() - startTime;
    LOG.debug("handle", "healthcheckResponse", new String[] { "method", "status", "totalTime" },
            request.method(), status.code(), totalTime);
}

From source file:com.groupon.vertx.utils.HealthcheckHandler.java

License:Apache License

protected void processExceptionResponse(HttpServerRequest request, Exception ex, long startTime) {
    HttpResponseStatus status = HttpResponseStatus.SERVICE_UNAVAILABLE;
    final boolean includeBody = !request.method().equals(HttpMethod.HEAD);
    String responseBody = status.reasonPhrase() + ": " + ex.getMessage();

    setCommonHttpResponse(request, status);

    if (includeBody) {
        request.response().end(responseBody);
    } else {//from ww  w .  ja  v a2  s.com
        request.response().putHeader(HttpHeaderNames.CONTENT_LENGTH, Integer.toString(responseBody.length()));
        request.response().end();
    }

    long totalTime = System.currentTimeMillis() - startTime;
    LOG.debug("handle", "healthcheckResponse", new String[] { "method", "status", "totalTime" },
            request.method(), status.code(), totalTime);
}

From source file:com.groupon.vertx.utils.HealthcheckHandler.java

License:Apache License

private void setCommonHttpResponse(HttpServerRequest request, HttpResponseStatus status) {
    request.response().putHeader(HttpHeaderNames.CONTENT_TYPE, CONTENT_TYPE);
    request.response().putHeader(HttpHeaderNames.CACHE_CONTROL, CACHE_CONTROL);
    request.response().setStatusCode(status.code());
    request.response().setStatusMessage(status.reasonPhrase());
}

From source file:com.king.platform.net.http.netty.response.HttpClientResponseHandler.java

License:Apache License

public void handleResponse(ChannelHandlerContext ctx, Object msg) throws Exception {
    HttpRequestContext httpRequestContext = ctx.channel().attr(HttpRequestContext.HTTP_REQUEST_ATTRIBUTE_KEY)
            .get();//w  w  w .  j a v a2 s .c o m

    if (httpRequestContext == null) {
        logger.trace("httpRequestContext is null, msg was {}", msg);
        return;
    }

    NettyHttpClientResponse nettyHttpClientResponse = httpRequestContext.getNettyHttpClientResponse();

    RequestEventBus requestEventBus = nettyHttpClientResponse.getRequestEventBus();

    ResponseBodyConsumer responseBodyConsumer = nettyHttpClientResponse.getResponseBodyConsumer();

    try {

        if (msg instanceof HttpResponse) {
            requestEventBus.triggerEvent(Event.TOUCH);

            logger.trace("read HttpResponse");
            HttpResponse response = (HttpResponse) msg;

            HttpResponseStatus httpResponseStatus = response.getStatus();
            HttpHeaders httpHeaders = response.headers();

            nettyHttpClientResponse.setHttpResponseStatus(httpResponseStatus);
            nettyHttpClientResponse.setHttpHeaders(httpHeaders);

            requestEventBus.triggerEvent(Event.onReceivedStatus, httpResponseStatus);
            requestEventBus.triggerEvent(Event.onReceivedHeaders, httpHeaders);

            httpRequestContext.getTimeRecorder().readResponseHttpHeaders();

            if (httpRequestContext.isFollowRedirects()
                    && httpRedirector.isRedirectResponse(httpResponseStatus)) {
                httpRedirector.redirectRequest(httpRequestContext, httpHeaders);
                return;
            }

            if (response.getStatus().code() == 100) {
                requestEventBus.triggerEvent(Event.WRITE_BODY, ctx);
                return;
            }

            String contentLength = httpHeaders.get(HttpHeaders.Names.CONTENT_LENGTH);

            String contentType = httpHeaders.get(HttpHeaders.Names.CONTENT_TYPE);
            String charset = StringUtil.substringAfter(contentType, '=');
            if (charset == null) {
                charset = StandardCharsets.ISO_8859_1.name();
            }

            contentType = StringUtil.substringBefore(contentType, ';');

            if (contentLength != null) {
                long length = Long.parseLong(contentLength);
                responseBodyConsumer.onBodyStart(contentType, charset, length);
            } else {
                responseBodyConsumer.onBodyStart(contentType, charset, 0);
            }

            httpRequestContext.getTimeRecorder().responseBodyStart();

        } else if (msg instanceof HttpContent) {
            logger.trace("read HttpContent");
            requestEventBus.triggerEvent(Event.TOUCH);

            HttpResponseStatus httpResponseStatus = nettyHttpClientResponse.getHttpResponseStatus();
            HttpHeaders httpHeaders = nettyHttpClientResponse.getHttpHeaders();

            if (httpResponseStatus == null || (httpRequestContext.isFollowRedirects()
                    && httpRedirector.isRedirectResponse(httpResponseStatus))) {
                return;
            }

            if (msg == LastHttpContent.EMPTY_LAST_CONTENT
                    && nettyHttpClientResponse.getHttpResponseStatus().code() == 100) {
                logger.trace("read EMPTY_LAST_CONTENT with status code 100");
                return;
            }

            HttpContent chunk = (HttpContent) msg;

            ByteBuf content = chunk.content();

            content.resetReaderIndex();

            int readableBytes = content.readableBytes();

            if (readableBytes > 0) {
                ByteBuffer byteBuffer = content.nioBuffer();

                responseBodyConsumer.onReceivedContentPart(byteBuffer);
                requestEventBus.triggerEvent(Event.onReceivedContentPart, readableBytes, content);

            }

            content.release();

            requestEventBus.triggerEvent(Event.TOUCH);

            if (chunk instanceof LastHttpContent) {

                responseBodyConsumer.onCompletedBody();

                requestEventBus.triggerEvent(Event.onReceivedCompleted, httpResponseStatus, httpHeaders);
                httpRequestContext.getTimeRecorder().responseBodyCompleted();

                com.king.platform.net.http.HttpResponse httpResponse = new com.king.platform.net.http.HttpResponse(
                        httpResponseStatus.code(), responseBodyConsumer);

                for (Map.Entry<String, String> entry : httpHeaders.entries()) {
                    httpResponse.addHeader(entry.getKey(), entry.getValue());
                }

                requestEventBus.triggerEvent(Event.onHttpResponseDone, httpResponse);

                requestEventBus.triggerEvent(Event.COMPLETED, httpRequestContext);

            }
        }
    } catch (Throwable e) {
        requestEventBus.triggerEvent(Event.ERROR, httpRequestContext, e);
    }
}

From source file:com.king.platform.net.http.netty.response.HttpRedirector.java

License:Apache License

public boolean isRedirectResponse(HttpResponseStatus httpResponseStatus) {
    int statusCode = httpResponseStatus.code();
    boolean redirect = Arrays.binarySearch(REDIRECTABLE_STATUS_CODES, statusCode) >= 0;
    if (redirect) {
        logger.trace("Should redirect since statusCode is {}", statusCode);
    }//from ww w  .ja va 2  s.  c o m
    return redirect;
}

From source file:com.linecorp.armeria.server.metrics.MetricCollectingServiceCodec.java

License:Apache License

private void invokeComplete(ServiceInvocationContext ctx, HttpResponseStatus status, ByteBuf buf)
        throws Exception {
    MetricsData metricsData = ctx.attr(METRICS).get();
    long elapsedTime = System.nanoTime() - metricsData.startTimeNanos;
    metricConsumer.invocationComplete(ctx.scheme(), status.code(), elapsedTime, metricsData.requestSizeBytes,
            buf.readableBytes(), ctx.host(), ctx.path(), Optional.of(ctx.method()), true);
}

From source file:com.mastfrog.acteur.ActeurFactory.java

License:Open Source License

public Acteur redirect(String location, HttpResponseStatus status) throws URISyntaxException {
    Checks.notNull("location", location);
    Checks.notNull("status", status);
    switch (status.code()) {
    case 300://from   ww w  .  ja  v  a  2s .  c  om
    case 301:
    case 302:
    case 303:
    case 305:
    case 307:
        break;
    default:
        throw new IllegalArgumentException(status + " is not a redirect");
    }
    return new Redirect(location, status);
}

From source file:com.mastfrog.acteur.ResponseImpl.java

License:Open Source License

final boolean canHaveBody(HttpResponseStatus status) {
    switch (status.code()) {
    case 204://from  w w w . j a  v  a2 s .  c o m
    case 205:
    case 304:
        return false;
    default:
        return true;
    }
}