Example usage for io.netty.handler.codec.http HttpMethod valueOf

List of usage examples for io.netty.handler.codec.http HttpMethod valueOf

Introduction

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

Prototype

public static HttpMethod valueOf(String name) 

Source Link

Document

Returns the HttpMethod represented by the specified name.

Usage

From source file:cn.wantedonline.puppy.httpserver.component.HttpRequestDecoder.java

License:Apache License

@Override
protected HttpMessage createMessage(String[] initialLine) throws Exception {
    HttpMethod method = HttpMethod.valueOf(initialLine[0]);
    try {// w ww .j  a  v  a 2s. c  om
        return new HttpRequest(HttpVersion.valueOf(initialLine[2]), method, initialLine[1]);
    } catch (Exception e) {
        String fix = initialLine[1] + " " + initialLine[2];
        int result = 0;
        for (result = fix.length(); result > 0; --result) {
            if (Character.isWhitespace(fix.charAt(result - 1))) {
                break;
            }
        }
        String version = fix.substring(result);
        for (; result > 0; --result) {
            if (!Character.isWhitespace(fix.charAt(result - 1))) {
                break;
            }
        }
        String uri = fix.substring(0, result);
        uri = uri.replaceAll("\t", "%09").replaceAll("\n", "%0D").replaceAll("\r", "%0A").replaceAll(" ", "+");
        log.error(
                "parse httpRequest initialLine fail!\n\tori:{}\n\t      fix:{}\n\t      uri:{}\n\t  version:{}\n\t{}",
                new Object[] { Arrays.toString(initialLine), fix, uri, version, e.getMessage() });
        return new HttpRequest(HttpVersion.valueOf(version), method, uri);
    }
}

From source file:com.amazonaws.http.AmazonRxNettyHttpClient.java

License:Apache License

protected <X, Y extends AmazonWebServiceRequest> Observable<X> invokeImpl(Request<Y> request,
        RxNettyResponseHandler<AmazonWebServiceResponse<X>> responseHandler,
        RxNettyResponseHandler<AmazonServiceException> errorResponseHandler, ExecutionContext executionContext)
        throws java.io.UnsupportedEncodingException {

    return Observable.defer(() -> {
        final List<RequestHandler2> requestHandler2s = requestHandler2s(executionContext);
        StringBuffer sbPath = new StringBuffer();
        if (request.getResourcePath() != null)
            sbPath.append(request.getResourcePath());
        if (sbPath.length() == 0)
            sbPath.append("/");

        String content = null;//from www . ja v  a  2 s  .c  om
        if (request.getContent() != null)
            content = ((StringInputStream) request.getContent()).getString();

        String queryString = RxSdkHttpUtils.encodeParameters(request);
        if (RxSdkHttpUtils.usePayloadForQueryParameters(request)) {
            request.addHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
            content = queryString;
        } else if (queryString != null) {
            sbPath.append("?").append(queryString);
        }

        HttpClientRequest<ByteBuf> rxRequest = HttpClientRequest
                .create(HttpMethod.valueOf(request.getHttpMethod().toString()), sbPath.toString());
        HttpRequestHeaders rxHeaders = rxRequest.getHeaders();
        request.getHeaders().entrySet().stream().forEach(e -> {
            rxHeaders.set(e.getKey(), e.getValue());
        });

        if (content != null)
            rxRequest.withContent(content);

        return getClient(endpoint.getHost()).submit(rxRequest).flatMap(response -> {
            if (response.getStatus().code() / 100 == 2) {
                try {
                    return responseHandler.handle(response).map(r -> {
                        Response<X> awsResponse = new Response<X>(r.getResult(), null);
                        afterResponse(request, requestHandler2s, awsResponse);
                        return awsResponse.getAwsResponse();
                    });
                } catch (Exception e) {
                    return Observable.error(e);
                }
            } else {
                try {
                    return errorResponseHandler.handle(response).flatMap(e -> {
                        e.setServiceName(request.getServiceName());
                        afterError(request, null, requestHandler2s, e);
                        return Observable.error(e);
                    });
                } catch (Exception e) {
                    return Observable.error(e);
                }
            }
        });
    }).onErrorResumeNext(t -> {
        if (t instanceof AmazonClientException)
            return Observable.error(t);
        else
            return Observable.error(new AmazonClientException(t));
    });
}

From source file:com.cisco.oss.foundation.http.netlifx.netty.NettyNetflixHttpClient.java

License:Apache License

private HttpClientRequest<ByteBuf> buildNetflixHttpRequest(HttpRequest request, Joiner joiner) {
    HttpClientRequest<ByteBuf> httpRequest = null;
    HttpMethod httpMethod = HttpMethod.valueOf(request.getHttpMethod().name());

    URI uri = buildUri(request, joiner);

    httpRequest = HttpClientRequest.create(httpMethod, uri.toString());
    byte[] entity = request.getEntity();
    if (entity != null) {
        httpRequest.withContent(entity);
    }//from  w w w  .j  a v  a2  s  . com

    Map<String, Collection<String>> headers = request.getHeaders();
    for (Map.Entry<String, Collection<String>> stringCollectionEntry : headers.entrySet()) {
        String key = stringCollectionEntry.getKey();
        Collection<String> stringCollection = stringCollectionEntry.getValue();
        String value = joiner.join(stringCollection);
        httpRequest.withHeader(key, value);
    }

    if (StringUtils.isNoneEmpty(request.getContentType())) {
        String contentType = request.getContentType();
        httpRequest.withHeader("Content-Type", contentType);
    }

    return httpRequest;
}

From source file:com.creamsugardonut.CustomHttpRequestDecoder.java

License:Apache License

@Override
protected HttpMessage createMessage(String[] initialLine) throws Exception {
    return new DefaultHttpRequest(HttpVersion.valueOf(initialLine[2]), HttpMethod.valueOf(initialLine[0]),
            initialLine[1], validateHeaders);
}

From source file:com.linkedin.r2.transport.http.client.NettyRequestAdapter.java

License:Apache License

/**
 * Adapts a RestRequest to Netty's HttpRequest
 * @param request  R2 rest request//from w w  w.  j a va2s.c  o m
 * @return Adapted HttpRequest.
 */
static HttpRequest toNettyRequest(RestRequest request) throws Exception {
    HttpMethod nettyMethod = HttpMethod.valueOf(request.getMethod());
    URL url = new URL(request.getURI().toString());
    String path = url.getFile();
    // RFC 2616, section 5.1.2:
    //   Note that the absolute path cannot be empty; if none is present in the original URI,
    //   it MUST be given as "/" (the server root).
    if (path.isEmpty()) {
        path = "/";
    }

    ByteBuf content = Unpooled.wrappedBuffer(request.getEntity().asByteBuffer());
    HttpRequest nettyRequest = new DefaultFullHttpRequest(HttpVersion.HTTP_1_1, nettyMethod, path, content);
    nettyRequest.headers().set(HttpConstants.CONTENT_LENGTH, request.getEntity().length());

    for (Map.Entry<String, String> entry : request.getHeaders().entrySet()) {
        nettyRequest.headers().set(entry.getKey(), entry.getValue());
    }
    nettyRequest.headers().set(HttpHeaderNames.HOST, url.getAuthority());
    nettyRequest.headers().set(HttpConstants.REQUEST_COOKIE_HEADER_NAME, request.getCookies());

    return nettyRequest;
}

From source file:com.linkedin.r2.transport.http.client.NettyRequestAdapter.java

License:Apache License

/**
 * Adapts a StreamRequest to Netty's HttpRequest
 * @param request  R2 stream request/*from   w  w  w.j a  va 2s.co  m*/
 * @return Adapted HttpRequest.
 */
static HttpRequest toNettyRequest(StreamRequest request) throws Exception {
    HttpMethod nettyMethod = HttpMethod.valueOf(request.getMethod());
    URL url = new URL(request.getURI().toString());
    String path = url.getFile();
    // RFC 2616, section 5.1.2:
    //   Note that the absolute path cannot be empty; if none is present in the original URI,
    //   it MUST be given as "/" (the server root).
    if (path.isEmpty()) {
        path = "/";
    }

    HttpRequest nettyRequest = new DefaultHttpRequest(HttpVersion.HTTP_1_1, nettyMethod, path);
    nettyRequest.headers().set(HttpHeaderNames.TRANSFER_ENCODING, HttpHeaderValues.CHUNKED);

    for (Map.Entry<String, String> entry : request.getHeaders().entrySet()) {
        // RFC 7230, section 3.3.2
        //   A sender MUST NOT send a Content-Length header field in any message
        //   that contains a Transfer-Encoding header field.
        if (entry.getKey().equalsIgnoreCase(HttpHeaderNames.CONTENT_LENGTH.toString())) {
            continue;
        }

        nettyRequest.headers().set(entry.getKey(), entry.getValue());
    }
    nettyRequest.headers().set(HttpHeaderNames.HOST, url.getAuthority());
    nettyRequest.headers().set(HttpConstants.REQUEST_COOKIE_HEADER_NAME, request.getCookies());

    return nettyRequest;
}

From source file:com.linkedin.r2.transport.http.client.TestRAPClientCodec.java

License:Apache License

@Test(dataProvider = "restRequest")
public void testRequestEncoder(String uri, RestRequest request) {
    final EmbeddedChannel ch = new EmbeddedChannel(new RAPClientCodec());

    ch.writeOutbound(request);//from   w  ww .  j a  v  a  2 s .c om
    FullHttpRequest nettyRequest = (FullHttpRequest) ch.readOutbound();

    Assert.assertEquals(nettyRequest.uri(), uri);
    Assert.assertEquals(nettyRequest.method(), HttpMethod.valueOf(request.getMethod()));
    Assert.assertEquals(nettyRequest.content().toString(CHARSET), request.getEntity().asString(CHARSET));
    Assert.assertEquals(nettyRequest.headers().get(HttpHeaderNames.HOST), HOST);
    assertList(nettyRequest.headers().getAll(HttpConstants.REQUEST_COOKIE_HEADER_NAME), request.getCookies());

    for (String name : request.getHeaders().keySet()) {
        Assert.assertEquals(nettyRequest.headers().get(name), request.getHeader(name));
    }

    ch.finish();
}

From source file:com.mastfrog.netty.http.client.HttpClient.java

License:Open Source License

void redirect(Method method, URL url, RequestInfo info) {
    HttpRequest nue;/*from  ww  w. jav a 2 s  . co  m*/
    if (method.toString().equals(info.req.getMethod().toString())) {
        if (info.req instanceof DefaultFullHttpRequest) {
            DefaultFullHttpRequest dfrq = (DefaultFullHttpRequest) info.req;
            FullHttpRequest rq;
            try {
                rq = dfrq.copy();
            } catch (IllegalReferenceCountException e) { // Empty bytebuf
                rq = dfrq;
            }
            rq.setUri(url.getPathAndQuery());
            nue = rq;
        } else {
            nue = new DefaultHttpRequest(info.req.getProtocolVersion(), info.req.getMethod(),
                    url.getPathAndQuery());
        }
    } else {
        nue = new DefaultHttpRequest(info.req.getProtocolVersion(), HttpMethod.valueOf(method.name()),
                url.getPathAndQuery());
    }
    copyHeaders(info.req, nue);
    nue.headers().set(Headers.HOST.name(), url.toSimpleURL().getHost());
    submit(url, nue, info.cancelled, info.handle, info.r, info, info.remaining(), info.dontAggregate);
}

From source file:com.mastfrog.netty.http.client.RequestBuilder.java

License:Open Source License

public HttpRequest build() {
    if (url == null) {
        throw new IllegalStateException("URL not set");
    }/*from  w w w . j a  v a2s  .  c  o  m*/
    URL u = getURL();
    if (!u.isValid()) {
        if (u.getProblems() != null) {
            u.getProblems().throwIfFatalPresent();
        } else {
            throw new IllegalArgumentException("Invalid url " + u);
        }
    }
    if (u.getHost() == null) {
        throw new IllegalStateException("URL host not set: " + u);
    }
    String uri = u.getPathAndQuery();
    if (uri.isEmpty()) {
        uri = "/";
    }
    HttpMethod mth = HttpMethod.valueOf(method.name());
    DefaultHttpRequest h = body == null ? new DefaultHttpRequest(version, mth, uri)
            : new DefaultFullHttpRequest(version, mth, uri, body);
    for (Entry<?> e : entries) {
        e.addTo(h.headers());
    }
    if (!noHostHeader) {
        h.headers().add(HttpHeaders.Names.HOST, u.getHost().toString());
    }
    if (!h.headers().contains(HttpHeaders.Names.CONNECTION) && !noConnectionHeader) {
        h.headers().add(HttpHeaders.Names.CONNECTION, "close");
    }
    if (!noDateHeader) {
        h.headers().add(HttpHeaders.Names.DATE, Headers.DATE.toString(DateTime.now()));
    }
    if (store != null) {
        store.decorate(h);
    }
    return h;
}

From source file:com.mpush.core.handler.HttpProxyHandler.java

License:Apache License

@Override
public void handle(HttpRequestMessage message) {
    try {//from w w  w .  j a va2s  .  c  o  m
        //1.?
        String method = message.getMethod();
        String uri = message.uri;
        if (Strings.isNullOrEmpty(uri)) {
            HttpResponseMessage.from(message).setStatusCode(400).setReasonPhrase("Bad Request").sendRaw();
            Logs.HTTP.warn("receive bad request url is empty, request={}", message);
        }

        //2.url?
        uri = doDnsMapping(uri);

        Profiler.enter("time cost on [create FullHttpRequest]");
        //3.?HTTP request
        FullHttpRequest request = new DefaultFullHttpRequest(HTTP_1_1, HttpMethod.valueOf(method), uri,
                getBody(message));
        setHeaders(request, message);//?header

        Profiler.enter("time cost on [HttpClient.request]");
        //4.??
        httpClient.request(new RequestContext(request, new DefaultHttpCallback(message)));
    } catch (Exception e) {
        HttpResponseMessage.from(message).setStatusCode(502).setReasonPhrase("Bad Gateway").sendRaw();
        LOGGER.error("send request ex, message=" + message, e);
        Logs.HTTP.error("send proxy request ex, request={}, error={}", message, e.getMessage());
    } finally {
        Profiler.release();
    }
}