Java 类io.netty.handler.codec.http.DefaultHttpRequest 实例源码
项目:proxyee-down
文件:HttpRequestInfo.java
public static HttpRequest adapter(HttpRequest httpRequest) {
if (httpRequest instanceof DefaultHttpRequest) {
HttpVer version;
if (httpRequest.protocolVersion().minorVersion() == 0) {
version = HttpVer.HTTP_1_0;
} else {
version = HttpVer.HTTP_1_1;
}
HttpHeadsInfo httpHeadsInfo = new HttpHeadsInfo();
for (Entry<String, String> entry : httpRequest.headers()) {
httpHeadsInfo.set(entry.getKey(), entry.getValue());
}
return new HttpRequestInfo(version, httpRequest.method().toString(), httpRequest.uri(),
httpHeadsInfo, null);
}
return httpRequest;
}
项目:riposte
文件:StreamingAsyncHttpClientTest.java
@DataProvider(value = {
"80 | false | localhost | localhost",
"80 | true | localhost | localhost:80",
"8080 | false | localhost | localhost:8080",
"443 | true | localhost | localhost",
"443 | false | localhost | localhost:443",
"8080 | true | localhost | localhost:8080",
}, splitBy = "\\|")
@Test
public void streamDownstreamCall_setsHostHeaderCorrectly(int downstreamPort, boolean isSecure, String downstreamHost, String expectedHostHeader) {
// given
DefaultHttpRequest request = new DefaultHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.GET, "");
ChannelHandlerContext ctx = mockChannelHandlerContext();
StreamingCallback streamingCallback = mock(StreamingCallback.class);
// when
new StreamingAsyncHttpClient(200, 200, true)
.streamDownstreamCall(downstreamHost, downstreamPort, request, isSecure, false, streamingCallback, 200, ctx);
// then
assertThat(request.headers().get(HOST)).isEqualTo(expectedHostHeader);
}
项目:reactor-netty
文件:HttpClientOperations.java
HttpClientOperations(Channel channel,
BiFunction<? super HttpClientResponse, ? super HttpClientRequest, ? extends Publisher<Void>> handler,
ContextHandler<?> context) {
super(channel, handler, context);
this.isSecure = channel.pipeline()
.get(NettyPipeline.SslHandler) != null;
String[] redirects = channel.attr(REDIRECT_ATTR_KEY)
.get();
this.redirectedFrom = redirects == null ? EMPTY_REDIRECTIONS : redirects;
this.nettyRequest =
new DefaultHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.GET, "/");
this.requestHeaders = nettyRequest.headers();
this.requestHeaders.set(HttpHeaderNames.USER_AGENT, HttpClient.USER_AGENT);
this.inboundPrefetch = 16;
chunkedTransfer(true);
}
项目:StitchRTSP
文件:ServerHandler.java
@Override
public void channelRead0(ChannelHandlerContext ctx, DefaultHttpRequest request)
throws Exception {
// TODO Auto-generated method stub
if(request.getMethod().equals(RtspMethods.TEARDOWN))
handleRtspTEARDOWNMethod(ctx,request);
else if(request.getMethod().equals(RtspMethods.OPTIONS))
handleRtspOPTIONSMethod(ctx,request);
else if(request.getMethod().equals(RtspMethods.DESCRIBE))
handleRtspDESCRIBEMethod(ctx,request);
else if(request.getMethod().equals(RtspMethods.SETUP))
handleRtspSETUPMethod(ctx,request);
else if(request.getMethod().equals(RtspMethods.PLAY))
handleRtspPLAYMethod(ctx,request);
else if(request.getMethod().equals(RtspMethods.PAUSE))
handleRtspPAUSEMethod(ctx,request);
else
System.err.println("Exception in ServerHandler");
}
项目:msf4j
文件:HttpHeadersImplTest.java
@BeforeMethod
public void setUp() throws Exception {
HTTPCarbonMessage httpCarbonMessage = new HTTPCarbonMessage(
new DefaultHttpRequest(HttpVersion.HTTP_1_1, io.netty.handler.codec.http.HttpMethod.GET, "msf4j"));
httpCarbonMessage.getHeaders().add("testA", "test1");
httpCarbonMessage.getHeaders().add("testA", "test2");
httpCarbonMessage.setHeader("Accept", "application/json");
httpCarbonMessage.setHeader("Content-Type", "text/html");
httpCarbonMessage.setHeader("Content-Language", "en");
httpCarbonMessage.setHeader("Content-Length", "1024");
httpCarbonMessage.setHeader("Date", "Sun, 06 Nov 1994 08:49:37 GMT");
httpCarbonMessage.getHeaders().add("Accept-Language", "da");
httpCarbonMessage.getHeaders().add("Accept-Language", "en-gb;q=0.8");
httpCarbonMessage.getHeaders().add("Accept-Language", "en;q=0.7");
httpCarbonMessage.getHeaders().add("Cookie", "JSESSIONID=3508015E4EF0ECA8C4B761FCC4BC1718");
httpHeaders1 = new HttpHeadersImpl(httpCarbonMessage.getHeaders());
HTTPCarbonMessage httpCarbonMessage2 = new HTTPCarbonMessage(
new DefaultHttpRequest(HttpVersion.HTTP_1_1, io.netty.handler.codec.http.HttpMethod.GET, "msf4j"));
httpHeaders2 = new HttpHeadersImpl(httpCarbonMessage2.getHeaders());
}
项目:carbon-transports
文件:Util.java
@SuppressWarnings("unchecked")
public static HttpRequest createHttpRequest(HTTPCarbonMessage msg) {
HttpMethod httpMethod;
if (null != msg.getProperty(Constants.HTTP_METHOD)) {
httpMethod = new HttpMethod((String) msg.getProperty(Constants.HTTP_METHOD));
} else {
httpMethod = new HttpMethod(DEFAULT_HTTP_METHOD_POST);
}
HttpVersion httpVersion;
if (null != msg.getProperty(Constants.HTTP_VERSION)) {
httpVersion = new HttpVersion((String) msg.getProperty(Constants.HTTP_VERSION), true);
} else {
httpVersion = new HttpVersion(DEFAULT_VERSION_HTTP_1_1, true);
}
if ((String) msg.getProperty(Constants.TO) == null) {
msg.setProperty(Constants.TO, "/");
}
HttpRequest outgoingRequest = new DefaultHttpRequest(httpVersion, httpMethod,
(String) msg.getProperty(Constants.TO), false);
HttpHeaders headers = msg.getHeaders();
outgoingRequest.headers().setAll(headers);
return outgoingRequest;
}
项目:carbon-transports
文件:HTTPClientRedirectTestCase.java
private HTTPCarbonMessage createHttpRequest(String method, String location) {
URL locationUrl = null;
try {
locationUrl = new URL(location);
} catch (MalformedURLException e) {
TestUtil.handleException("MalformedURLException occurred while running unitTestForRedirectHandler ", e);
}
HttpMethod httpMethod = new HttpMethod(method);
HTTPCarbonMessage httpCarbonRequest = new HTTPCarbonMessage(
new DefaultHttpRequest(HttpVersion.HTTP_1_1, httpMethod, ""));
httpCarbonRequest.setProperty(Constants.PORT, locationUrl.getPort());
httpCarbonRequest.setProperty(Constants.PROTOCOL, locationUrl.getProtocol());
httpCarbonRequest.setProperty(Constants.HOST, locationUrl.getHost());
httpCarbonRequest.setProperty(Constants.HTTP_METHOD, method);
httpCarbonRequest.setProperty(Constants.REQUEST_URL, locationUrl.getPath());
httpCarbonRequest.setProperty(Constants.TO, locationUrl.getPath());
httpCarbonRequest.setHeader(Constants.HOST, locationUrl.getHost());
httpCarbonRequest.setHeader(Constants.PORT, Integer.toString(locationUrl.getPort()));
httpCarbonRequest.setEndOfMsgAdded(true);
return httpCarbonRequest;
}
项目:easydq_webservice_proxy
文件:AuthenticationPreProcessorTest.java
@Test(expected = AuthenticationHeaderMissingException.class)
public void testAuthenticationHeaderMissing() throws Exception {
AuthenticationProvider authenticationProvider = EasyMock
.createMock(AuthenticationProvider.class);
HttpRequest httpRequest = new DefaultHttpRequest(HttpVersion.HTTP_1_1,
HttpMethod.GET, "testUri");
Module module = new DiscardingModule();
Session session = module.startSession(null);
session.setCustomer(new Customer("testUserName", "testPassword"));
session.setServiceName("testServiceName");
module.close();
EasyMock.replay(authenticationProvider);
@SuppressWarnings("resource")
// close() method invokes only authenticationProvider.close(), which has been invoked explicitly above.
AuthenticationPreProcessor authenticationPreProcessor = new AuthenticationPreProcessor(
authenticationProvider);
authenticationPreProcessor.process(httpRequest, session);
EasyMock.verify(authenticationProvider);
}
项目:easydq_webservice_proxy
文件:AccountancyPostProcessorTest.java
@Test
public void testSuccessfulAdding() {
Accountancy accountancy = EasyMock.createMock(Accountancy.class);
Module module = new DiscardingModule();
Session session = module.startSession(null);
session.setCustomer(new Customer("testUserName", "testPassword"));
session.setServiceName("testServiceName");
module.close();
Capture<AccountancyItem> capture = new Capture<AccountancyItem>();
accountancy.addItem(EasyMock.capture(capture));
EasyMock.replay(accountancy);
accountancyPostProcessor = new AccountancyPostProcessor(accountancy);
accountancyPostProcessor.process(new DefaultHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.GET, "/testRequestPath"), session);
EasyMock.verify(accountancy);
}
项目:easydq_webservice_proxy
文件:AccountancyPostProcessorTest.java
@Test(expected = IllegalStateException.class)
public void testCustomerIsNull() {
Accountancy accountancy = EasyMock.createMock(Accountancy.class);
Module module = new DiscardingModule();
Session session = module.startSession(null);
// The lack of setter invocation for customer
session.setServiceName("testServiceName");
module.close();
EasyMock.replay(accountancy);
accountancyPostProcessor = new AccountancyPostProcessor(accountancy);
accountancyPostProcessor.process(new DefaultHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.GET, "/testRequestPath"), session);
EasyMock.verify(accountancy);
}
项目:easydq_webservice_proxy
文件:AccountancyPostProcessorTest.java
@Test(expected = IllegalStateException.class)
public void testServiceNameIsNull() {
Accountancy accountancy = EasyMock.createMock(Accountancy.class);
Module module = new DiscardingModule();
Session session = module.startSession(null);
session.setCustomer(new Customer("testUserName", "testPassword"));
// The lack of setter invocation for service name
module.close();
EasyMock.replay(accountancy);
accountancyPostProcessor = new AccountancyPostProcessor(accountancy);
accountancyPostProcessor.process(new DefaultHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.GET, "/testRequestPath"), session);
EasyMock.verify(accountancy);
}
项目:easydq_webservice_proxy
文件:AccountancyPostProcessorTest.java
@Test(expected = IllegalStateException.class)
public void testCustomerAndServiceNameAreNull() {
Accountancy accountancy = EasyMock.createMock(Accountancy.class);
Module module = new DiscardingModule();
Session session = module.startSession(null);
// The lack of setter invocation for customer
// The lack of setter invocation for service name
module.close();
EasyMock.replay(accountancy);
accountancyPostProcessor = new AccountancyPostProcessor(accountancy);
accountancyPostProcessor.process(new DefaultHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.GET, "/testRequestPath"), session);
EasyMock.verify(accountancy);
}
项目:xio
文件:HttpServerTracingHandlerTest.java
@Test
public void testThreadBoundaries() throws Exception {
Thread thread =
new Thread(
new Runnable() {
public void run() {
EmbeddedChannel channel =
new EmbeddedChannel(
new HttpServerTracingHandler(httpTracingState), new ApplicationHandler());
DefaultHttpRequest request = new DefaultHttpRequest(HTTP_1_1, GET, "/foo");
channel.writeInbound(request);
channel.runPendingTasks();
synchronized (httpTracing) {
httpTracing.notify();
}
}
});
thread.start();
synchronized (httpTracing) {
httpTracing.wait();
}
Assert.assertEquals(2, spans.size());
}
项目:xio
文件:Http1FilterUnitTest.java
@Test
public void testDeniedRule() throws UnknownHostException {
List<Http1DeterministicRuleEngineConfig.Rule> blacklist = new ArrayList<>();
HashMultimap<String, String> headers = HashMultimap.create();
headers.put("User-Agent", "Bad-actor: 1.0");
Http1DeterministicRuleEngineConfig.Rule bad =
new Http1DeterministicRuleEngineConfig.Rule(
HttpMethod.GET, "/path/to/failure", HttpVersion.HTTP_1_0, headers);
blacklist.add(bad);
Http1Filter http1Filter =
new Http1Filter(new Http1FilterConfig(ImmutableList.copyOf(blacklist)));
EmbeddedChannel chDeny = new EmbeddedChannel(http1Filter);
DefaultHttpRequest request =
new DefaultHttpRequest(HttpVersion.HTTP_1_0, HttpMethod.GET, "/path/to/failure");
request.headers().set("User-Agent", "Bad-actor: 1.0");
chDeny.writeInbound(request);
chDeny.runPendingTasks();
assertFalse(chDeny.isActive());
assertFalse(chDeny.isOpen());
}
项目:xio
文件:Http1FilterUnitTest.java
@Test
public void testAllowedRule() throws UnknownHostException {
List<Http1DeterministicRuleEngineConfig.Rule> blacklist = new ArrayList<>();
HashMultimap<String, String> headers = HashMultimap.create();
headers.put("User-Agent", "Bad-actor: 1.0");
Http1DeterministicRuleEngineConfig.Rule bad =
new Http1DeterministicRuleEngineConfig.Rule(
HttpMethod.POST, "/path/to/failure", HttpVersion.HTTP_1_1, headers);
blacklist.add(bad);
Http1Filter http1Filter =
new Http1Filter(new Http1FilterConfig(ImmutableList.copyOf(blacklist)));
EmbeddedChannel chAllow = new EmbeddedChannel(http1Filter);
DefaultHttpRequest request =
new DefaultHttpRequest(HttpVersion.HTTP_1_0, HttpMethod.GET, "/path/to/failure");
request.headers().set("User-Agent", "Bad-actor: 1.0");
chAllow.writeInbound(request);
assertTrue(chAllow.isActive());
assertTrue(chAllow.isOpen());
}
项目:divconq
文件:DownloadHandler.java
public void start(final HyperSession parent, WritableByteChannel dest, String chanid, Map<String, Cookie> cookies, long size, long offset, final OperationCallback callback) {
this.dest = dest;
this.cookies = cookies;
this.callback = callback;
this.size = size;
this.sent = offset;
this.src = this.allocateChannel(parent, callback);
if (this.callback.hasErrors()) {
callback.complete();
return;
}
// send a request to get things going
HttpRequest req = new DefaultHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.GET, "/download/" + chanid);
req.headers().set(Names.HOST, parent.getInfo().getHost());
req.headers().set(Names.USER_AGENT, "DivConq HyperAPI Client 1.0");
req.headers().set(Names.CONNECTION, HttpHeaders.Values.CLOSE);
req.headers().set(Names.COOKIE, ClientCookieEncoder.STRICT.encode(this.cookies.values()));
// send request
this.src.writeAndFlush(req);
}
项目:RxNetty
文件:CookieTest.java
@Test
public void testSetCookie() throws Exception {
DefaultHttpRequest nettyRequest = new DefaultHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.GET, "");
String cookie1Name = "PREF";
String cookie1Value = "ID=a95756377b78e75e:FF=0:TM=1392709628:LM=1392709628:S=a5mOVvTB7DBkexgi";
String cookie1Domain = ".google.com";
String cookie1Path = "/";
Cookie cookie = new DefaultCookie(cookie1Name, cookie1Value);
cookie.setPath(cookie1Path);
cookie.setDomain(cookie1Domain);
new HttpClientRequest<ByteBuf>(nettyRequest).withCookie(cookie);
String cookieHeader = nettyRequest.headers().get(HttpHeaders.Names.COOKIE);
Assert.assertNotNull("No cookie header found.", cookieHeader);
Set<Cookie> decodeCookies = CookieDecoder.decode(cookieHeader);
Assert.assertNotNull("No cookie found with name.", decodeCookies);
Assert.assertEquals("Unexpected number of cookies.", 1, decodeCookies.size());
Cookie decodedCookie = decodeCookies.iterator().next();
Assert.assertEquals("Unexpected cookie name.", cookie1Name, decodedCookie.getName());
Assert.assertEquals("Unexpected cookie path.", cookie1Path, decodedCookie.getPath());
Assert.assertEquals("Unexpected cookie domain.", cookie1Domain, decodedCookie.getDomain());
}
项目:RxNetty
文件:CookieTest.java
@Test
public void testGetCookie() throws Exception {
DefaultHttpRequest nettyRequest = new DefaultHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.GET, "");
String cookie1Name = "PREF";
String cookie1Value = "ID=a95756377b78e75e:FF=0:TM=1392709628:LM=1392709628:S=a5mOVvTB7DBkexgi";
String cookie1Domain = ".google.com";
String cookie1Path = "/";
String cookie1Header = cookie1Name + '=' + cookie1Value
+ "; expires=Thu, 18-Feb-2016 07:47:08 GMT; path=" + cookie1Path + "; domain=" + cookie1Domain;
nettyRequest.headers().add(HttpHeaders.Names.COOKIE, cookie1Header);
HttpServerRequest<ByteBuf> request = new HttpServerRequest<ByteBuf>(nettyRequest, PublishSubject.<ByteBuf>create());
Map<String,Set<Cookie>> cookies = request.getCookies();
Assert.assertEquals("Unexpected number of cookies.", 1, cookies.size());
Set<Cookie> cookies1 = cookies.get(cookie1Name);
Assert.assertNotNull("No cookie found with name: " + cookie1Name, cookies1);
Assert.assertEquals("Unexpected number of cookies with name: " + cookie1Name, 1, cookies1.size() );
Cookie cookie = cookies1.iterator().next();
Assert.assertEquals("Unexpected cookie name.", cookie1Name, cookie.getName());
Assert.assertEquals("Unexpected cookie path.", cookie1Path, cookie.getPath());
}
项目:liveoak
文件:RedirectManager.java
protected boolean checkSecured(String applicationId, ApplicationRedirectConfig config, ResourceRequest request) throws Exception {
if (request.requestContext().securityContext() != null && request.requestContext().securityContext().isAuthenticated()) {
return true;
}
String authorization = ((DefaultHttpRequest)request.requestContext().requestAttributes().getAttribute(HttpResourceRequestDecoder.HTTP_REQUEST)).headers().get("Authorization");
if (authorization != null) {
return true;
}
RequestAttributes attribs = new DefaultRequestAttributes();
attribs.setAttribute(AuthzConstants.ATTR_REQUEST_CONTEXT, new UnAuthorizedRequestContext(request.requestContext()));
attribs.setAttribute(AuthzConstants.ATTR_REQUEST_RESOURCE_STATE, request.state());
RequestContext authzRequest = new RequestContext.Builder().requestAttributes(attribs).build();
ResourceState resourceState = client.read(authzRequest, "/" + applicationId + "/authz/authzCheck");
boolean authorized = (Boolean) resourceState.getProperty(AuthzConstants.ATTR_AUTHZ_RESULT);
if (authorized) {
return false;
} else {
return true;
}
}
项目:ambry
文件:NettyRequestTest.java
/**
* Creates a {@link NettyRequest} with the given parameters.
* @param httpMethod the {@link HttpMethod} desired.
* @param uri the URI desired.
* @param headers {@link HttpHeaders} that need to be a part of the request.
* @param channel the {@link Channel} that the request arrived over.
* @return {@link NettyRequest} encapsulating a {@link HttpRequest} with the given parameters.
* @throws RestServiceException if the {@code httpMethod} is not recognized by {@link NettyRequest}.
*/
private NettyRequest createNettyRequest(HttpMethod httpMethod, String uri, HttpHeaders headers, Channel channel)
throws RestServiceException {
MetricRegistry metricRegistry = new MetricRegistry();
RestRequestMetricsTracker.setDefaults(metricRegistry);
HttpRequest httpRequest = new DefaultHttpRequest(HttpVersion.HTTP_1_1, httpMethod, uri, false);
if (headers != null) {
httpRequest.headers().set(headers);
}
NettyRequest nettyRequest =
new NettyRequest(httpRequest, channel, new NettyMetrics(metricRegistry), BLACKLISTED_QUERY_PARAM_SET);
assertEquals("Auto-read is in an invalid state",
(!httpMethod.equals(HttpMethod.POST) && !httpMethod.equals(HttpMethod.PUT))
|| NettyRequest.bufferWatermark <= 0, channel.config().isAutoRead());
return nettyRequest;
}
项目:elasticsearch_my
文件:Netty4HttpPipeliningHandlerTests.java
public void testThatPipeliningWorksWithChunkedRequests() throws InterruptedException {
final int numberOfRequests = randomIntBetween(2, 128);
final EmbeddedChannel embeddedChannel =
new EmbeddedChannel(
new AggregateUrisAndHeadersHandler(),
new HttpPipeliningHandler(numberOfRequests),
new WorkEmulatorHandler());
for (int i = 0; i < numberOfRequests; i++) {
final DefaultHttpRequest request = new DefaultFullHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.GET, "/" + i);
embeddedChannel.writeInbound(request);
embeddedChannel.writeInbound(LastHttpContent.EMPTY_LAST_CONTENT);
}
final List<CountDownLatch> latches = new ArrayList<>();
for (int i = numberOfRequests - 1; i >= 0; i--) {
latches.add(finishRequest(Integer.toString(i)));
}
for (final CountDownLatch latch : latches) {
latch.await();
}
embeddedChannel.flush();
for (int i = 0; i < numberOfRequests; i++) {
assertReadHttpMessageHasContent(embeddedChannel, Integer.toString(i));
}
assertTrue(embeddedChannel.isOpen());
}
项目:util4j
文件:NettyHttpClient.java
public static void main(String[] args) {
NettyHttpClient client=new NettyHttpClient();
long time=System.currentTimeMillis();
HttpRequest request=new DefaultHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.GET, "/baidu?tn=monline_6_dg&ie=utf-8&wd=netty+http客户端");
HttpResponse response=client.syncRequest("www.baidu.com", 80, request);
System.out.println(System.currentTimeMillis()-time);
System.out.println(response);
FullHttpResponse rsp=(FullHttpResponse) response;
System.out.println("content:"+rsp.content().toString(CharsetUtil.UTF_8));
// new Scanner(System.in).nextLine();
}
项目:siddhi-io-http
文件:HttpSink.java
public HTTPCarbonMessage createHttpCarbonMessage(String method) {
HTTPCarbonMessage httpCarbonMessage = null;
switch (method) {
case "GET": {
httpCarbonMessage = new HTTPCarbonMessage(
new DefaultHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.GET, ""));
break;
}
case "PUT": {
httpCarbonMessage = new HTTPCarbonMessage(
new DefaultHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.PUT, ""));
break;
}
case "PATCH": {
httpCarbonMessage = new HTTPCarbonMessage(
new DefaultHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.PATCH, ""));
break;
}
case "DELETE": {
httpCarbonMessage = new HTTPCarbonMessage(
new DefaultHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.DELETE, ""));
break;
}
case "POST": {
httpCarbonMessage = new HTTPCarbonMessage(
new DefaultHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.POST, ""));
break;
}
default: {
log.error("Invalid request type.");
break;
}
}
return httpCarbonMessage;
}
项目:siddhi-io-http
文件:HttpIoUtil.java
/**
* Create new HTTP carbon messge.
*
* @param isRequest
* @return
*/
private static HTTPCarbonMessage createHttpCarbonMessage(boolean isRequest) {
HTTPCarbonMessage httpCarbonMessage;
if (isRequest) {
httpCarbonMessage = new HTTPCarbonMessage(
new DefaultHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.GET, ""));
httpCarbonMessage.setEndOfMsgAdded(true);
} else {
httpCarbonMessage = new HTTPCarbonMessage(
new DefaultHttpResponse(HttpVersion.HTTP_1_1, HttpResponseStatus.OK));
httpCarbonMessage.setEndOfMsgAdded(true);
}
return httpCarbonMessage;
}
项目:aws-sdk-java-v2
文件:RequestAdapter.java
public HttpRequest adapt(SdkHttpRequest sdkRequest) {
String uri = sdkRequest.getUri().toString();
HttpMethod method = toNettyHttpMethod(sdkRequest.method());
HttpHeaders headers = new DefaultHttpHeaders();
DefaultHttpRequest request = new DefaultHttpRequest(HttpVersion.HTTP_1_1, method, uri, headers);
sdkRequest.headers().forEach(request.headers()::add);
return request;
}
项目:historybook
文件:LittleProxyRequestTest.java
@Test
public void testGetUri() {
String url = "http://does.not.exist/file";
DefaultHttpRequest request = mock(DefaultHttpRequest.class);
when(request.getUri()).thenReturn(url);
LittleProxyRequest lpr = new LittleProxyRequest(request);
assertEquals(url, lpr.getUri());
}
项目:riposte
文件:ProxyRouterEndpoint.java
/**
* Helper method that generates a {@link HttpRequest} for the downstream call's first chunk that uses the given
* downstreamPath and downstreamMethod, and the query string and headers from the incomingRequest will be added and
* passed through without modification.
*/
@SuppressWarnings("UnusedParameters")
protected HttpRequest generateSimplePassthroughRequest(RequestInfo<?> incomingRequest, String downstreamPath,
HttpMethod downstreamMethod, ChannelHandlerContext ctx) {
String queryString = extractQueryString(incomingRequest.getUri());
String downstreamUri = downstreamPath;
// TODO: Add logic to support when downstreamPath already has a query string on it. The two query strings should be combined
if (queryString != null)
downstreamUri += queryString;
HttpRequest downstreamRequestInfo =
new DefaultHttpRequest(HttpVersion.HTTP_1_1, downstreamMethod, downstreamUri);
downstreamRequestInfo.headers().set(incomingRequest.getHeaders());
return downstreamRequestInfo;
}
项目:riposte
文件:ExceptionHandlingHandlerTest.java
@Test
public void getRequestInfo_creates_new_RequestInfo_based_on_msg_if_state_requestInfo_is_null_and_msg_is_a_HttpRequest() {
// given
assertThat(state.getRequestInfo(), nullValue());
String expectedUri = "/some/uri/" + UUID.randomUUID().toString();
HttpRequest httpRequest = new DefaultHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.GET, expectedUri);
// when
RequestInfo<?> result = handler.getRequestInfo(state, httpRequest);
// then
assertThat(result.getUri(), is(expectedUri));
}
项目:riposte
文件:DTraceStartHandlerTest.java
@Before
public void beforeMethod() {
handler = new DTraceStartHandler(userIdHeaderKeys);
channelMock = mock(Channel.class);
ctxMock = mock(ChannelHandlerContext.class);
stateAttributeMock = mock(Attribute.class);
state = new HttpProcessingState();
httpRequest = new DefaultHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.GET, "/some/uri");
doReturn(channelMock).when(ctxMock).channel();
doReturn(stateAttributeMock).when(channelMock).attr(ChannelAttributes.HTTP_PROCESSING_STATE_ATTRIBUTE_KEY);
doReturn(state).when(stateAttributeMock).get();
resetTracingAndMdc();
}
项目:yarpc-java
文件:TransportRequestEncoderConfiguration.java
@Override
public HttpRequest buildStartMessage(TransportRequest request, AttributeMap channelAttrs) {
DefaultHttpRequest httpRequest =
new DefaultHttpRequest(HttpTransport.HTTP_VERSION, HttpMethod.POST, url.getPath());
HttpHeaders httpHeaders = httpRequest.headers();
setCommonHeaders(httpHeaders, request, channelAttrs);
httpHeaders.set(HttpHeaderNames.TRANSFER_ENCODING, HttpHeaderValues.CHUNKED);
return httpRequest;
}
项目:yarpc-java
文件:TransportRequestEncoderConfiguration.java
@Override
public HttpRequest buildFullMessage(
TransportRequest request, byte[] body, AttributeMap channelAttrs) {
DefaultHttpRequest httpRequest =
new DefaultFullHttpRequest(
HttpTransport.HTTP_VERSION,
HttpMethod.POST,
url.getPath(),
Unpooled.wrappedBuffer(body));
setCommonHeaders(httpRequest.headers(), request, channelAttrs);
HttpUtil.setContentLength(httpRequest, body.length);
return httpRequest;
}
项目:yarpc-java
文件:TransportRequestDecoderTest.java
private HttpRequest newChunkedHttpRequest() {
DefaultHttpRequest req = new DefaultHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.POST, "/foo");
req.headers()
.add(HeaderMapper.SERVICE, "service")
.add(HeaderMapper.PROCEDURE, "procedure")
.add(HeaderMapper.CALLER, "caller")
.add(HeaderMapper.ENCODING, "http");
return req;
}
项目:little_mitm
文件:ClientToProxyConnection.java
/**
* Copy the given {@link HttpRequest} verbatim.
*
* @param original
* @return
*/
private HttpRequest copy(HttpRequest original) {
if (original instanceof FullHttpRequest) {
return ((FullHttpRequest) original).copy();
} else {
HttpRequest request = new DefaultHttpRequest(original.getProtocolVersion(),
original.getMethod(), original.getUri());
request.headers().set(original.headers());
return request;
}
}
项目:LittleProxy
文件:ClientToProxyConnection.java
/**
* Copy the given {@link HttpRequest} verbatim.
*
* @param original
* @return
*/
private HttpRequest copy(HttpRequest original) {
if (original instanceof DefaultFullHttpRequest) {
ByteBuf content = ((DefaultFullHttpRequest) original).content();
return new DefaultFullHttpRequest(original.getProtocolVersion(),
original.getMethod(), original.getUri(), content);
} else {
return new DefaultHttpRequest(original.getProtocolVersion(),
original.getMethod(), original.getUri());
}
}
项目:StitchRTSP
文件:ServerHandler.java
private void handleRtspPLAYMethod(ChannelHandlerContext ctx, DefaultHttpRequest request) {
// TODO Auto-generated method stub
System.out.println("PLAY");
FullHttpResponse response = null;
String sessionID = request.headers().get(RtspHeaders.Names.SESSION);
String uri = request.getUri();
String path = uri.substring(uri.indexOf("8554")+4);
String filePath = changeUriToAbsolutePath(path);
if (filePath.endsWith("/"))
filePath = filePath.substring(0, filePath.length() - 1);
File file = new File(filePath);
if (file.isDirectory() || !file.exists()) {
return;
}
long rtpTime = System.currentTimeMillis();
int trackID = 1;
String rtpInfo = "url="+uri+"/trackID="+trackID+";seq=10000;rtptime="+rtpTime;
response = new DefaultFullHttpResponse(RtspVersions.RTSP_1_0, RtspResponseStatuses.OK);
response.headers().set(RtspHeaders.Names.CSEQ,request.headers().get(RtspHeaders.Names.CSEQ));
response.headers().set(RtspHeaders.Names.SESSION,sessionID);
response.headers().set(RtspHeaders.Names.RTP_INFO,rtpInfo);
response.headers().set(RtspHeaders.Names.RANGE,"npt=0.000-");
writeResponseWithFuture(ctx, request, response);
RtpPacketization rtpPacket = new RtpPacketization(ctx, filePath);
rtpThread = new Thread(rtpPacket);
rtpThread.start();
}
项目:StitchRTSP
文件:ServerHandler.java
private void handleRtspSETUPMethod(ChannelHandlerContext ctx, DefaultHttpRequest request) {
// TODO Auto-generated method stub
System.out.println("SETUP");
FullHttpResponse response = null;
URI uri = null;
try {
uri = new URI(request.getUri());
} catch (URISyntaxException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String path = uri.getPath();
String filePath = changeUriToAbsolutePath(path).substring(0,changeUriToAbsolutePath(path).lastIndexOf("/"));
if(filePath.endsWith("/"))
filePath = filePath.substring(0,filePath.length()-1);
File file = new File(filePath);
if (file.isDirectory() || !file.exists()) {
return;
}
String localAddress = ctx.channel().localAddress().toString();
String remoteAddress = ctx.channel().remoteAddress().toString();
String remotePort = remoteAddress.substring(remoteAddress.indexOf(":")+1);
String interleaved = request.headers().get(RtspHeaders.Names.TRANSPORT).substring(request.headers().get(RtspHeaders.Names.TRANSPORT).indexOf("interleaved"));
String serverTransport = "RTP/AVP/TCP;unicast;destination="+localAddress.substring(1,localAddress.indexOf(String.valueOf(ServerMain.PORT))-1)
+ ";source="+remoteAddress.substring(1,remoteAddress.indexOf(remotePort)-1)
+ ";interleaved="+interleaved.substring(interleaved.indexOf("=")+1);
response = new DefaultFullHttpResponse(RtspVersions.RTSP_1_0, RtspResponseStatuses.OK);
response.headers().set(RtspHeaders.Names.CSEQ, request.headers().get(RtspHeaders.Names.CSEQ));
response.headers().set(RtspHeaders.Names.TRANSPORT, serverTransport);
response.headers().set(RtspHeaders.Names.SESSION,"1");
writeResponseWithFuture(ctx,request,response);
}
项目:StitchRTSP
文件:ServerHandler.java
private void handleRtspOPTIONSMethod(ChannelHandlerContext ctx, DefaultHttpRequest request) {
// TODO Auto-generated method stub
System.out.println("OPTIONS");
String options = RtspMethods.OPTIONS.name()+", "+RtspMethods.DESCRIBE.name()+", "+RtspMethods.SETUP.name()
+", "+RtspMethods.TEARDOWN.name()+", "+RtspMethods.PLAY.name()+", "+RtspMethods.PAUSE.name();
FullHttpResponse response = new DefaultFullHttpResponse(RtspVersions.RTSP_1_0, RtspResponseStatuses.OK);
response.headers().set(RtspHeaders.Names.CSEQ,request.headers().get(RtspHeaders.Names.CSEQ));
response.headers().set(RtspHeaders.Names.PUBLIC,options);
writeResponseWithFuture(ctx,request,response);
}
项目:StitchRTSP
文件:ServerHandler.java
private void writeResponseWithFuture(ChannelHandlerContext ctx,
DefaultHttpRequest request, HttpResponse response) {
// TODO Auto-generated method stub
ChannelFuture responseFuture;
ChannelFuture lastresponseFuture;
responseFuture = ctx.write(response,ctx.newProgressivePromise());
lastresponseFuture = ctx.writeAndFlush(LastHttpContent.EMPTY_LAST_CONTENT);
responseFuture.addListener(new ChannelProgressiveFutureListener() {
@Override
public void operationComplete(ChannelProgressiveFuture future) {
System.err.println(future.channel() + " "+future.cause()+" "+future.isCancelled()+" "+future.isDone()+" "+future.isSuccess()+" "/*+future.sync()*/);
}
@Override
public void operationProgressed(ChannelProgressiveFuture paramF,
long paramLong1, long paramLong2) throws Exception {
// TODO Auto-generated method stub
}
});
if (!HttpHeaders.isKeepAlive(request)) {
lastresponseFuture.addListener(ChannelFutureListener.CLOSE);
}
}
项目:msf4j
文件:TraceableHttpServerRequestTest.java
@BeforeClass
public void setUp() throws IOException {
HTTPCarbonMessage httpCarbonMessage = new HTTPCarbonMessage(
new DefaultHttpRequest(HttpVersion.HTTP_1_1, io.netty.handler.codec.http.HttpMethod.GET, "msf4j"));
httpCarbonMessage.setHeader("testK", "testV");
request = new Request(httpCarbonMessage);
request.setProperty("TO", "msf4j");
request.setProperty("HTTP_METHOD", HttpMethod.GET);
httpServerRequest = new TraceableHttpServerRequest(request);
}
项目:armeria
文件:Http1ObjectEncoder.java
private HttpObject convertClientHeaders(int streamId, HttpHeaders headers, boolean endStream)
throws Http2Exception {
// Leading headers will always have :method, trailers will never have it.
final HttpMethod method = headers.method();
if (method == null) {
return convertTrailingHeaders(streamId, headers);
}
// Convert leading headers.
final HttpRequest req = new DefaultHttpRequest(
HttpVersion.HTTP_1_1,
io.netty.handler.codec.http.HttpMethod.valueOf(method.name()),
headers.path(), false);
convert(streamId, headers, req.headers(), false);
if (endStream) {
req.headers().remove(HttpHeaderNames.TRANSFER_ENCODING);
req.headers().remove(HttpHeaderNames.CONTENT_LENGTH);
} else if (HttpUtil.getContentLength(req, -1L) >= 0) {
// Avoid the case where both 'content-length' and 'transfer-encoding' are set.
req.headers().remove(HttpHeaderNames.TRANSFER_ENCODING);
} else {
req.headers().set(HttpHeaderNames.TRANSFER_ENCODING, HttpHeaderValues.CHUNKED);
}
return req;
}