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

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

Introduction

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

Prototype

HttpResponseStatus CONTINUE

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

Click Source Link

Document

100 Continue

Usage

From source file:org.restnext.server.ServerHandler.java

License:Apache License

@Override
protected void channelRead0(ChannelHandlerContext ctx, FullHttpRequest req) {
    if (req.decoderResult().isFailure()) {
        throw new ServerException(req.decoderResult().cause(), BAD_REQUEST);
    }//from  w w  w .  ja  v  a 2 s .  c o m

    // Handle 100 - Continue request.
    if (HttpUtil.is100ContinueExpected(req)) {
        ctx.write(new DefaultFullHttpResponse(req.protocolVersion(), HttpResponseStatus.CONTINUE));
    }

    // Create Request from FullHttpRequest
    final Request request = new RequestImpl(ctx, req);
    final String uri = request.getUri().toString();
    final URI baseUri = request.getBaseUri();
    final URI fullRequestUri = baseUri.resolve(uri);
    final List<MediaType> medias = request.getMediaType();
    final Request.Method method = request.getMethod();

    // Check security constraint for the request,
    // otherwise return 401 - Unauthorized  response.
    if (!Security.checkAuthorization(request)) {
        throw new ServerException(String.format("Access denied for the uri %s", fullRequestUri), UNAUTHORIZED);
    }

    // Get registered route mapping for the request uri, otherwise return 404 - Not Found  response.
    Route.Mapping routeMapping = Optional.ofNullable(Route.INSTANCE.getRouteMapping(uri))
            .filter(Route.Mapping::isEnable).filter(mapping -> mapping.getRouteProvider() != null)
            .orElseThrow(() -> new ServerException(String
                    .format("Route mapping not found for the method %s and uri %s", method, fullRequestUri),
                    NOT_FOUND));

    // Parse the uri parameters and add it to request parameters map.
    UrlMatch urlMatch = routeMapping.getUrlMatcher().match(uri);
    for (Map.Entry<String, String> entry : urlMatch.parameterSet()) {
        request.getParams().add(entry.getKey(), entry.getValue());
    }

    // Check if the registered route mapping methods contains the request method,
    // otherwise return 405 - Method Not Allowed response.
    Optional.ofNullable(routeMapping.getMethods())
            .filter(methods -> methods.contains(method) || methods.isEmpty())
            .orElseThrow(() -> new ServerException(
                    String.format("Method %s not allowed for the request uri %s", method, fullRequestUri),
                    METHOD_NOT_ALLOWED));

    // Check if the registered route mapping medias contains the request media,
    // otherwise return 415 Unsupported Media Type response.
    Optional.ofNullable(routeMapping.getMedias()).filter(routeMedias -> anyMatchMediaType(routeMedias, medias))
            .orElseThrow(() -> new ServerException(String
                    .format("Unsupported %s media type(s) for the request uri %s", medias, fullRequestUri),
                    UNSUPPORTED_MEDIA_TYPE));

    // Write the response for the request.
    write(ctx, Optional.ofNullable(routeMapping.writeResponse(request)).orElse(Response.noContent().build()),
            request.isKeepAlive());
}

From source file:org.restnext.server.ServerHandler.java

License:Apache License

private HttpResponseStatus fromStatus(Response.Status status) {
    switch (status) {
    case OK:/*from ww w  . j  av  a2s .c o  m*/
        return HttpResponseStatus.OK;
    case CREATED:
        return HttpResponseStatus.CREATED;
    case ACCEPTED:
        return HttpResponseStatus.ACCEPTED;
    case NO_CONTENT:
        return HttpResponseStatus.NO_CONTENT;
    case RESET_CONTENT:
        return HttpResponseStatus.RESET_CONTENT;
    case PARTIAL_CONTENT:
        return HttpResponseStatus.PARTIAL_CONTENT;
    case MOVED_PERMANENTLY:
        return HttpResponseStatus.MOVED_PERMANENTLY;
    case FOUND:
        return HttpResponseStatus.FOUND;
    case SEE_OTHER:
        return HttpResponseStatus.SEE_OTHER;
    case NOT_MODIFIED:
        return HttpResponseStatus.NOT_MODIFIED;
    case USE_PROXY:
        return HttpResponseStatus.USE_PROXY;
    case TEMPORARY_REDIRECT:
        return HttpResponseStatus.TEMPORARY_REDIRECT;
    case BAD_REQUEST:
        return HttpResponseStatus.BAD_REQUEST;
    case UNAUTHORIZED:
        return HttpResponseStatus.UNAUTHORIZED;
    case PAYMENT_REQUIRED:
        return HttpResponseStatus.PAYMENT_REQUIRED;
    case FORBIDDEN:
        return HttpResponseStatus.FORBIDDEN;
    case NOT_FOUND:
        return HttpResponseStatus.NOT_FOUND;
    case METHOD_NOT_ALLOWED:
        return HttpResponseStatus.METHOD_NOT_ALLOWED;
    case NOT_ACCEPTABLE:
        return HttpResponseStatus.NOT_ACCEPTABLE;
    case PROXY_AUTHENTICATION_REQUIRED:
        return HttpResponseStatus.PROXY_AUTHENTICATION_REQUIRED;
    case REQUEST_TIMEOUT:
        return HttpResponseStatus.REQUEST_TIMEOUT;
    case CONFLICT:
        return HttpResponseStatus.CONFLICT;
    case GONE:
        return HttpResponseStatus.GONE;
    case LENGTH_REQUIRED:
        return HttpResponseStatus.LENGTH_REQUIRED;
    case PRECONDITION_FAILED:
        return HttpResponseStatus.PRECONDITION_FAILED;
    case REQUEST_ENTITY_TOO_LARGE:
        return HttpResponseStatus.REQUEST_ENTITY_TOO_LARGE;
    case REQUEST_URI_TOO_LONG:
        return HttpResponseStatus.REQUEST_URI_TOO_LONG;
    case UNSUPPORTED_MEDIA_TYPE:
        return HttpResponseStatus.UNSUPPORTED_MEDIA_TYPE;
    case REQUESTED_RANGE_NOT_SATISFIABLE:
        return HttpResponseStatus.REQUESTED_RANGE_NOT_SATISFIABLE;
    case EXPECTATION_FAILED:
        return HttpResponseStatus.EXPECTATION_FAILED;
    case INTERNAL_SERVER_ERROR:
        return HttpResponseStatus.INTERNAL_SERVER_ERROR;
    case NOT_IMPLEMENTED:
        return HttpResponseStatus.NOT_IMPLEMENTED;
    case BAD_GATEWAY:
        return HttpResponseStatus.BAD_GATEWAY;
    case SERVICE_UNAVAILABLE:
        return HttpResponseStatus.SERVICE_UNAVAILABLE;
    case GATEWAY_TIMEOUT:
        return HttpResponseStatus.GATEWAY_TIMEOUT;
    case HTTP_VERSION_NOT_SUPPORTED:
        return HttpResponseStatus.HTTP_VERSION_NOT_SUPPORTED;
    case CONTINUE:
        return HttpResponseStatus.CONTINUE;
    default:
        throw new RuntimeException(String.format("Status: %s not supported", status));
    }
}

From source file:org.springframework.boot.context.embedded.netty.ServletContentHandler.java

License:Apache License

@Override
public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
    if (msg instanceof HttpRequest) {
        HttpRequest request = (HttpRequest) msg;
        HttpResponse response = new DefaultHttpResponse(HttpVersion.HTTP_1_1, HttpResponseStatus.OK, false);
        HttpHeaders.setKeepAlive(response, HttpHeaders.isKeepAlive(request));
        NettyHttpServletResponse servletResponse = new NettyHttpServletResponse(ctx, servletContext, response);
        NettyHttpServletRequest servletRequest = new NettyHttpServletRequest(ctx, servletContext, request,
                servletResponse, inputStream);
        if (HttpHeaders.is100ContinueExpected(request)) {
            ctx.write(new DefaultFullHttpResponse(HttpVersion.HTTP_1_1, HttpResponseStatus.CONTINUE),
                    ctx.voidPromise());//from   w  w  w .  j a  v a 2s  . c o  m
        }
        ctx.fireChannelRead(servletRequest);
    }
    if (msg instanceof HttpContent) {
        inputStream.addContent((HttpContent) msg);
    }
}

From source file:org.traccar.protocol.Mta6ProtocolDecoder.java

License:Apache License

private void sendContinue(Channel channel) {
    FullHttpResponse response = new DefaultFullHttpResponse(HttpVersion.HTTP_1_1, HttpResponseStatus.CONTINUE);
    channel.writeAndFlush(new NetworkMessage(response, channel.remoteAddress()));
}

From source file:org.wingsource.wingweb.http.cxf.jaxrs.NettyHttpServletHandler.java

License:Apache License

@Override
public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
    HttpRequest request = (HttpRequest) msg;
    if (HttpHeaders.is100ContinueExpected(request)) {
        ctx.write(new DefaultHttpResponse(HttpVersion.HTTP_1_1, HttpResponseStatus.CONTINUE));
    }//from  w  ww  . j  a va 2 s.c  o  m

    // find the nettyHttpContextHandler by lookup the request url
    NettyHttpContextHandler nettyHttpContextHandler = pipelineFactory.getNettyHttpHandler(request.uri());

    if (request.uri().equals("/snoop")) {
        new HttpSnoopServerHandler().channelRead(ctx, msg);
    } else if (nettyHttpContextHandler != null) {
        handleHttpServletRequest(ctx, request, nettyHttpContextHandler);
    } else {
        throw new RuntimeException(
                new Fault(new Message("NO_NETTY_SERVLET_HANDLER_FOUND", LOG, request.getUri())));
    }
}