org.jboss.netty.handler.codec.http.HttpResponse类的使用及代码示例

x33g5p2x  于2022-01-20 转载在 其他  
字(14.0k)|赞(0)|评价(0)|浏览(106)

本文整理了Java中org.jboss.netty.handler.codec.http.HttpResponse类的一些代码示例,展示了HttpResponse类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。HttpResponse类的具体详情如下:
包路径:org.jboss.netty.handler.codec.http.HttpResponse
类名称:HttpResponse

HttpResponse介绍

[英]An HTTP response.

Accessing Cookies

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);

相关文章