List of usage examples for io.netty.handler.codec.http HttpMethod valueOf
public static HttpMethod valueOf(String name)
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(); } }