本文整理了Java中org.jboss.netty.handler.codec.http.HttpResponse
类的一些代码示例,展示了HttpResponse
类的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。HttpResponse
类的具体详情如下:
包路径:org.jboss.netty.handler.codec.http.HttpResponse
类名称:HttpResponse
[英]An HTTP response.
Unlike the Servlet API, org.jboss.netty.handler.codec.http.cookie.Cookie support is provided separately via org.jboss.netty.handler.codec.http.cookie.ServerCookieDecoder, org.jboss.netty.handler.codec.http.cookie.ClientCookieDecoder, org.jboss.netty.handler.codec.http.cookie.ServerCookieEncoder, and @io.netty.handler.codec.http.cookie.ClientCookieEncoder.
[中]HTTP响应。
####访问Cookies
与ServletAPI不同,org。jboss。内蒂。处理程序。编解码器。http。曲奇Cookie支持通过org单独提供。jboss。内蒂。处理程序。编解码器。http。曲奇服务器CookieDecoder,org。jboss。内蒂。处理程序。编解码器。http。曲奇ClientCookieDecoder,org。jboss。内蒂。处理程序。编解码器。http。曲奇ServerCookieEncoder和@io。内蒂。处理程序。编解码器。http。曲奇ClientCookie编码器。
代码示例来源:origin: voldemort/voldemort
long startTimeInMs) throws Exception {
ChannelBuffer responseContent = ChannelBuffers.dynamicBuffer(this.responseValue.length);
responseContent.writeBytes(responseValue);
HttpResponse response = new DefaultHttpResponse(HTTP_1_1, OK);
response.setHeader(CONTENT_TYPE, "binary");
response.setHeader(CONTENT_TRANSFER_ENCODING, "binary");
response.setContent(responseContent);
response.setHeader(CONTENT_LENGTH, response.getContent().readableBytes());
this.messageEvent.getChannel().write(response);
代码示例来源:origin: io.netty/netty
private static void sendHttpResponse(ChannelHandlerContext ctx, HttpRequest req, HttpResponse res) {
ChannelFuture f = ctx.getChannel().write(res);
if (!isKeepAlive(req) || res.getStatus().getCode() != 200) {
f.addListener(ChannelFutureListener.CLOSE);
}
}
代码示例来源:origin: apache/hive
protected void sendError(ChannelHandlerContext ctx, String message,
HttpResponseStatus status) {
HttpResponse response = new DefaultHttpResponse(HTTP_1_1, status);
response.headers().add(CONTENT_TYPE, "text/plain; charset=UTF-8");
// Put shuffle version into http header
response.headers().add(ShuffleHeader.HTTP_HEADER_NAME,
ShuffleHeader.DEFAULT_HTTP_HEADER_NAME);
response.headers().add(ShuffleHeader.HTTP_HEADER_VERSION,
ShuffleHeader.DEFAULT_HTTP_HEADER_VERSION);
response.setContent(
ChannelBuffers.copiedBuffer(message, CharsetUtil.UTF_8));
// Close the connection as soon as the error message is sent.
ctx.getChannel().write(response).addListener(ChannelFutureListener.CLOSE);
}
代码示例来源:origin: apache/incubator-druid
@Override
public ClientResponse<StatusResponseHolder> handleResponse(HttpResponse response, TrafficCop trafficCop)
{
return ClientResponse.unfinished(
new StatusResponseHolder(
response.getStatus(),
new StringBuilder(response.getContent().toString(charset))
)
);
}
代码示例来源:origin: voldemort/voldemort
/**
* Writes all error responses to the client.
*
* TODO REST-Server 1. collect error stats
*
* @param messageEvent - for retrieving the channel details
* @param status - error code
* @param message - error message
*/
public static void writeErrorResponse(MessageEvent messageEvent,
HttpResponseStatus status,
String message) {
// Create the Response object
HttpResponse response = new DefaultHttpResponse(HTTP_1_1, status);
response.setHeader(CONTENT_TYPE, "text/plain; charset=UTF-8");
response.setContent(ChannelBuffers.copiedBuffer("Failure: " + status.toString() + ". "
+ message + "\r\n", CharsetUtil.UTF_8));
response.setHeader(CONTENT_LENGTH, response.getContent().readableBytes());
// Write the response to the Netty Channel
messageEvent.getChannel().write(response);
}
}
代码示例来源:origin: apache/tajo
private void sendError(ChannelHandlerContext ctx, String message,
HttpResponseStatus status) {
HttpResponse response = new DefaultHttpResponse(HTTP_1_1, status);
response.setHeader(Names.CONTENT_TYPE, "text/plain; charset=UTF-8");
// Put shuffle version into http header
ChannelBuffer content = ChannelBuffers.copiedBuffer(message, CharsetUtil.UTF_8);
response.setContent(content);
response.setHeader(Names.CONTENT_LENGTH, content.writerIndex());
// Close the connection as soon as the error message is sent.
ctx.getChannel().write(response).addListener(ChannelFutureListener.CLOSE);
}
代码示例来源:origin: org.hornetq/hornetq-core
private void sendHttpResponse(ChannelHandlerContext ctx, HttpRequest req, HttpResponse res) {
// Generate an error page if response status code is not OK (200).
if (res.getStatus().getCode() != 200) {
res.setContent(
ChannelBuffers.copiedBuffer(
res.getStatus().toString(), CharsetUtil.UTF_8));
HttpHeaders.setContentLength(res, res.getContent().readableBytes());
}
// Send the response and close the connection if necessary.
ChannelFuture f = ctx.getChannel().write(res);
if (!HttpHeaders.isKeepAlive(req) || res.getStatus().getCode() != 200) {
f.addListener(ChannelFutureListener.CLOSE);
}
}
代码示例来源:origin: ibdknox/socket.io-netty
private void _write(String message) {
if(!this.open) return;
HttpResponse res = new DefaultHttpResponse(HTTP_1_1, HttpResponseStatus.OK);
res.addHeader(CONTENT_TYPE, "text/plain; charset=UTF-8");
res.addHeader("Access-Control-Allow-Origin", "*");
res.addHeader("Access-Control-Allow-Credentials", "true");
res.addHeader("Connection", "keep-alive");
res.setContent(ChannelBuffers.copiedBuffer(message, CharsetUtil.UTF_8));
setContentLength(res, res.getContent().readableBytes());
// Send the response and close the connection if necessary.
Channel chan = ctx.getChannel();
if(chan.isOpen()) {
ChannelFuture f = chan.write(res);
if (!isKeepAlive(req) || res.getStatus().getCode() != 200) {
f.addListener(ChannelFutureListener.CLOSE);
}
}
this.connected = false;
}
代码示例来源:origin: webbit/webbit
private void flushResponse() {
try {
// TODO: Shouldn't have to do this, but without it we sometimes seem to get two Content-Length headers in the response.
header("Content-Length", (String) null);
header("Content-Length", responseBuffer.readableBytes());
ChannelFuture future = response.isChunked() ? ctx.getChannel().write(new DefaultHttpChunk(ChannelBuffers.EMPTY_BUFFER)) : write(responseBuffer);
if (!isKeepAlive) {
future.addListener(ChannelFutureListener.CLOSE);
}
} catch (Exception e) {
exceptionHandler.uncaughtException(Thread.currentThread(),
WebbitException.fromException(e, ctx.getChannel()));
}
}
代码示例来源:origin: org.elasticsoftware.elasticactors-systems/elasticactors-systems-http
private void handle(HttpResponse message) throws Exception {
State state = getState(State.class);
// convert back to netty http response
org.jboss.netty.handler.codec.http.HttpResponse nettyResponse = new DefaultHttpResponse(HTTP_1_1, HttpResponseStatus.valueOf(message.getStatusCode()));
// @todo: copy the headers from the message
HttpHeaders.setHeader(nettyResponse,HttpHeaders.Names.CONTENT_TYPE,message.getContentType());
nettyResponse.setContent(ChannelBuffers.wrappedBuffer(message.getContent()));
// we don't support keep alive as of yet
state.getResponseChannel().write(nettyResponse).addListener(ChannelFutureListener.CLOSE);
// need to remove myself
getSystem().stop(getSelf());
}
代码示例来源:origin: io.netty/netty
@Override
public void messageReceived(ChannelHandlerContext ctx, MessageEvent e) throws Exception {
Object msg = e.getMessage();
if (msg instanceof HttpResponse && ((HttpResponse) msg).getStatus().getCode() == 100) {
ctx.sendUpstream(e);
} else if (msg instanceof HttpMessage) {
HttpMessage m = (HttpMessage) msg;
String contentEncoding = m.headers().get(HttpHeaders.Names.CONTENT_ENCODING);
if (contentEncoding != null) {
contentEncoding = contentEncoding.trim();
boolean hasContent = m.isChunked() || m.getContent().readable();
if (hasContent && (decoder = newContentDecoder(contentEncoding)) != null) {
m.headers().remove(HttpHeaders.Names.CONTENT_ENCODING);
} else {
m.headers().set(HttpHeaders.Names.CONTENT_ENCODING, targetContentEncoding);
ChannelBuffer content = m.getContent();
content = ChannelBuffers.wrappedBuffer(
decode(content), finishDecode());
m.headers().set(
HttpHeaders.Names.CONTENT_LENGTH,
Integer.toString(content.readableBytes()));
代码示例来源:origin: webbit/webbit
@Override
public NettyHttpResponse write(String content) {
if (response.isChunked()) {
ctx.getChannel().write(new DefaultHttpChunk(wrappedBuffer(content.getBytes(CharsetUtil.UTF_8))));
} else {
write(copiedBuffer(content, CharsetUtil.UTF_8));
}
return this;
}
代码示例来源:origin: zauberlabs/gnip4j
private void sendError(final ChannelHandlerContext ctx, final HttpResponseStatus status) {
final HttpResponse response = new DefaultHttpResponse(HTTP_1_1, status);
setHeader(response, CONTENT_TYPE, "text/plain; charset=UTF-8");
response.setContent(ChannelBuffers.copiedBuffer(
"Failure: " + status.toString() + "\r\n",
CharsetUtil.UTF_8));
// Close the connection as soon as the error message is sent.
ctx.getChannel().write(response).addListener(ChannelFutureListener.CLOSE);
}
}
代码示例来源:origin: webbit/webbit
private void performEventSourceHandshake(ChannelHandler eventSourceConnectionHandler) {
nettyHttpResponse.setStatus(HttpResponseStatus.OK);
nettyHttpResponse.addHeader("Content-Type", "text/event-stream");
nettyHttpResponse.addHeader("Transfer-Encoding", "identity");
nettyHttpResponse.addHeader("Connection", "keep-alive");
nettyHttpResponse.addHeader("Cache-Control", "no-cache");
nettyHttpResponse.setChunked(false);
ctx.getChannel().write(nettyHttpResponse);
getReadyToSendEventSourceMessages(eventSourceConnectionHandler);
}
代码示例来源:origin: apache/incubator-druid
HttpResponse httpResponse = (HttpResponse) msg;
if (log.isDebugEnabled()) {
log.debug("[%s] Got response: %s", requestDesc, httpResponse.getStatus());
channel.setReadable(true);
long backPressureDuration = System.nanoTime() - backPressureStartTimeNs;
log.debug("[%s] Resumed reads from channel (chunkNum = %,d).", requestDesc, resumeChunkNum);
possiblySuspendReads(response);
if (!httpResponse.isChunked()) {
finishRequest();
"[%s] Got chunk: %sB, last=%s",
requestDesc,
httpChunk.getContent().readableBytes(),
httpChunk.isLast()
);
retVal.set(null);
channel.close();
channelResourceContainer.returnResource();
代码示例来源:origin: io.netty/netty
HttpResponse res = new DefaultHttpResponse(HTTP_1_1, new HttpResponseStatus(101,
isHixie76 ? "WebSocket Protocol Handshake" : "Web Socket Protocol Handshake"));
res.headers().add(Names.UPGRADE, WEBSOCKET);
res.headers().add(CONNECTION, Values.UPGRADE);
res.headers().add(SEC_WEBSOCKET_ORIGIN, req.headers().get(ORIGIN));
res.headers().add(SEC_WEBSOCKET_LOCATION, getWebSocketUrl());
throw new WebSocketHandshakeException("Requested subprotocol(s) not supported: " + subprotocols);
} else {
res.headers().add(SEC_WEBSOCKET_PROTOCOL, selectedSubprotocol);
setSelectedSubprotocol(selectedSubprotocol);
int a = (int) (Long.parseLong(key1.replaceAll("[^0-9]", "")) / key1.replaceAll("[^ ]", "").length());
int b = (int) (Long.parseLong(key2.replaceAll("[^0-9]", "")) / key2.replaceAll("[^ ]", "").length());
long c = req.getContent().readLong();
ChannelBuffer input = ChannelBuffers.buffer(16);
input.writeInt(a);
input.writeInt(b);
input.writeLong(c);
res.setContent(WebSocketUtil.md5(input));
} else {
res.headers().add(WEBSOCKET_ORIGIN, req.headers().get(ORIGIN));
res.headers().add(WEBSOCKET_LOCATION, getWebSocketUrl());
res.headers().add(WEBSOCKET_PROTOCOL, selectSubprotocol(protocol));
代码示例来源:origin: io.netty/netty
/**
* Return that we need cannot not support the web socket version
*
* @param channel
* Channel
*/
public ChannelFuture sendUnsupportedWebSocketVersionResponse(Channel channel) {
HttpResponse res = new DefaultHttpResponse(
HttpVersion.HTTP_1_1,
HttpResponseStatus.SWITCHING_PROTOCOLS);
res.setStatus(HttpResponseStatus.UPGRADE_REQUIRED);
res.headers().set(Names.SEC_WEBSOCKET_VERSION, WebSocketVersion.V13.toHttpHeaderValue());
return channel.write(res);
}
代码示例来源:origin: com.ning/async-http-client
private boolean exitAfterHandlingBody(Channel channel, NettyResponseFuture<?> future, HttpResponse response, AsyncHandler<?> handler)
throws Exception {
if (!response.isChunked()) {
// no chunks expected, exiting
if (response.getContent().readableBytes() > 0)
// FIXME no need to notify an empty bodypart?
updateBodyAndInterrupt(future, handler, new NettyResponseBodyPart(response, null, true));
finishUpdate(future, channel, false);
return true;
}
return false;
}
代码示例来源:origin: webbit/webbit
@Override
public void prepareHandshakeResponse(NettyWebSocketConnection webSocketConnection) {
webSocketConnection.setVersion("HIXIE-76");
res.setStatus(new HttpResponseStatus(101, "Web Socket Protocol Handshake"));
res.addHeader(UPGRADE, WEBSOCKET);
res.addHeader(CONNECTION, UPGRADE);
res.addHeader(SEC_WEBSOCKET_ORIGIN, req.getHeader(ORIGIN));
res.addHeader(SEC_WEBSOCKET_LOCATION, getWebSocketLocation(req));
String protocol = req.getHeader(SEC_WEBSOCKET_PROTOCOL);
if (protocol != null) {
res.addHeader(SEC_WEBSOCKET_PROTOCOL, protocol);
}
// Calculate the answer of the challenge.
String key1 = req.getHeader(SEC_WEBSOCKET_KEY1);
String key2 = req.getHeader(SEC_WEBSOCKET_KEY2);
int a = (int) (Long.parseLong(key1.replaceAll("[^0-9]", "")) / key1.replaceAll("[^ ]", "").length());
int b = (int) (Long.parseLong(key2.replaceAll("[^0-9]", "")) / key2.replaceAll("[^ ]", "").length());
long c = req.getContent().readLong();
ChannelBuffer input = ChannelBuffers.buffer(16);
input.writeInt(a);
input.writeInt(b);
input.writeLong(c);
ChannelBuffer output = ChannelBuffers.wrappedBuffer(MD5.digest(input.array()));
res.setContent(output);
}
代码示例来源:origin: io.netty/netty
logger.debug(String.format("Channel %s WS Version 7 server handshake", channel.getId()));
HttpResponse res = new DefaultHttpResponse(HTTP_1_1, HttpResponseStatus.SWITCHING_PROTOCOLS);
String key = req.headers().get(Names.SEC_WEBSOCKET_KEY);
if (key == null) {
throw new WebSocketHandshakeException("not a WebSocket request: missing key");
ChannelBuffer sha1 = WebSocketUtil.sha1(ChannelBuffers.copiedBuffer(acceptSeed, CharsetUtil.US_ASCII));
String accept = WebSocketUtil.base64(sha1);
res.setStatus(HttpResponseStatus.SWITCHING_PROTOCOLS);
res.headers().add(Names.UPGRADE, WEBSOCKET.toLowerCase());
res.headers().add(Names.CONNECTION, Names.UPGRADE);
res.headers().add(Names.SEC_WEBSOCKET_ACCEPT, accept);
String subprotocols = req.headers().get(Names.SEC_WEBSOCKET_PROTOCOL);
if (subprotocols != null) {
throw new WebSocketHandshakeException("Requested subprotocol(s) not supported: " + subprotocols);
} else {
res.headers().add(Names.SEC_WEBSOCKET_PROTOCOL, selectedSubprotocol);
setSelectedSubprotocol(selectedSubprotocol);
内容来源于网络,如有侵权,请联系作者删除!