@Override public ClientResponse<FullResponseHolder> handleResponse(HttpResponse response, TrafficCop trafficCop) { return ClientResponse.unfinished( new FullResponseHolder( response.getStatus(), response, new StringBuilder(response.getContent().toString(charset)) ) ); }
@Override public ClientResponse<StatusResponseHolder> handleResponse(HttpResponse response, TrafficCop trafficCop) { return ClientResponse.unfinished( new StatusResponseHolder( response.getStatus(), new StringBuilder(response.getContent().toString(charset)) ) ); }
queue.put(new ChannelBufferInputStream(response.getContent())); throw Throwables.propagate(e); byteCount.addAndGet(response.getContent().readableBytes()); return ClientResponse.finished( new SequenceInputStream(
@Override public ClientResponse<AppendableByteArrayInputStream> handleResponse(HttpResponse response, TrafficCop trafficCop) { AppendableByteArrayInputStream in = new AppendableByteArrayInputStream(); in.add(getContentBytes(response.getContent())); return ClientResponse.finished(in); }
@Override public ClientResponse<FullResponseHolder> handleResponse(HttpResponse response, TrafficCop trafficCop) { BytesFullResponseHolder holder = new BytesFullResponseHolder( response.getStatus(), response, null ); holder.addChunk(getContentBytes(response.getContent())); return ClientResponse.unfinished( holder ); }
checkTotalBytesLimit(response.getContent().readableBytes()); continueReading = enqueue(response.getContent(), 0L); throw Throwables.propagate(e); totalByteCount.addAndGet(response.getContent().readableBytes()); return ClientResponse.finished( new SequenceInputStream(
@Override public ClientResponse<RetryResponseHolder<Intermediate>> handleResponse(HttpResponse httpResponse) { LOG.debug("UnauthorizedResponseHandler - Got response status {}", httpResponse.getStatus()); if (httpResponse.getStatus().equals(HttpResponseStatus.UNAUTHORIZED)) { // Drain the buffer //noinspection ResultOfMethodCallIgnored httpResponse.getContent().toString(); return ClientResponse.unfinished(RetryResponseHolder.retry()); } else { return wrap(httpResponseHandler.handleResponse(httpResponse)); } }
response.setHeader(CONTENT_LENGTH, response.getContent().readableBytes());
@Override public void sendResponse(StoreStats performanceStats, boolean isFromLocalZone, long startTimeInMs) throws Exception { String base64Key = RestUtils.encodeVoldemortKey(key.get()); String contentLocationKey = "/" + this.storeName + "/" + base64Key; List<VectorClock> vectorClocks = new ArrayList<VectorClock>(); for(Version versionedValue: versionedValues) { VectorClock vectorClock = (VectorClock) versionedValue; vectorClocks.add(vectorClock); numVectorClockEntries += vectorClock.getVersionMap().size(); } String eTags = RestUtils.getSerializedVectorClocks(vectorClocks); byte[] responseContent = eTags.getBytes(); ChannelBuffer responseContentBuffer = ChannelBuffers.dynamicBuffer(responseContent.length); responseContentBuffer.writeBytes(responseContent); // Create the Response object HttpResponse response = new DefaultHttpResponse(HTTP_1_1, OK); // Set the right headers response.setHeader(CONTENT_TYPE, "binary"); response.setHeader(CONTENT_TRANSFER_ENCODING, "binary"); response.setHeader(CONTENT_LOCATION, contentLocationKey); // Copy the data into the payload response.setContent(responseContentBuffer); response.setHeader(CONTENT_LENGTH, response.getContent().readableBytes()); // Write the response to the Netty Channel this.messageEvent.getChannel().write(response); }
/** * 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); } }
@Override public ClientResponse<RetryResponseHolder<Intermediate>> handleResponse( HttpResponse httpResponse, TrafficCop trafficCop ) { log.debug("UnauthorizedResponseHandler - Got response status [%s]", httpResponse.getStatus()); if (httpResponse.getStatus().equals(HttpResponseStatus.UNAUTHORIZED)) { // Drain the buffer httpResponse.getContent().toString(); return ClientResponse.unfinished(RetryResponseHolder.retry()); } else { return wrap(httpResponseHandler.handleResponse(httpResponse, trafficCop)); } }
response.setHeader(CONTENT_LENGTH, response.getContent().readableBytes());
response.setHeader(CONTENT_LENGTH, response.getContent().readableBytes());
@Override public void messageReceived(ChannelHandlerContext ctx, MessageEvent e) throws Exception { if (!readingChunks) { HttpResponse res = (HttpResponse) e.getMessage(); if (res.getStatus().getCode() != HttpResponseStatus.OK.getCode()) { throw new ChannelException("Unexpected HTTP response status: " + res.getStatus()); } if (res.isChunked()) { readingChunks = true; } else { ChannelBuffer content = res.getContent(); if (content.readable()) { fireMessageReceived(HttpTunnelingClientSocketChannel.this, content); } // Reached to the end of response - close the request. closeReal(succeededFuture(virtualChannel)); } } else { HttpChunk chunk = (HttpChunk) e.getMessage(); if (!chunk.isLast()) { fireMessageReceived(HttpTunnelingClientSocketChannel.this, chunk.getContent()); } else { readingChunks = false; // Reached to the end of response - close the request. closeReal(succeededFuture(virtualChannel)); } } }
private SpdySynReplyFrame createSynReplyFrame(HttpResponse httpResponse) throws Exception { boolean chunked = httpResponse.isChunked(); // Get the Stream-ID from the headers int streamId = SpdyHttpHeaders.getStreamId(httpResponse); SpdyHttpHeaders.removeStreamId(httpResponse); // The Connection, Keep-Alive, Proxy-Connection, and Transfer-Encoding // headers are not valid and MUST not be sent. httpResponse.headers().remove(HttpHeaders.Names.CONNECTION); httpResponse.headers().remove("Keep-Alive"); httpResponse.headers().remove("Proxy-Connection"); httpResponse.headers().remove(HttpHeaders.Names.TRANSFER_ENCODING); SpdySynReplyFrame spdySynReplyFrame = new DefaultSpdySynReplyFrame(streamId); spdySynReplyFrame.setLast(!chunked && !httpResponse.getContent().readable()); // Unfold the first line of the response into name/value pairs SpdyHeaders.setStatus(spdyVersion, spdySynReplyFrame, httpResponse.getStatus()); SpdyHeaders.setVersion(spdyVersion, spdySynReplyFrame, httpResponse.getProtocolVersion()); // Transfer the remaining HTTP headers for (Map.Entry<String, String> entry: httpResponse.headers()) { spdySynReplyFrame.headers().add(entry.getKey(), entry.getValue()); } return spdySynReplyFrame; }
ChannelBuffer challenge = response.getContent(); if (!challenge.equals(expectedChallengeResponseBytes)) { throw new WebSocketHandshakeException("Invalid challenge");
public NettyResponseBodyPart(HttpResponse response, HttpChunk chunk, boolean last) { super(last); content = chunk != null ? chunk.getContent() : response.getContent(); length = content.readableBytes(); }
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; }
@Override public ClientResponse<FullResponseHolder> handleResponse(HttpResponse response) { return ClientResponse.unfinished( new FullResponseHolder( response.getStatus(), response, new StringBuilder(response.getContent().toString(charset)) ) ); }
@Override public ClientResponse<FullResponseHolder> handleResponse(HttpResponse response, TrafficCop trafficCop) { return ClientResponse.unfinished( new FullResponseHolder( response.getStatus(), response, new StringBuilder(response.getContent().toString(charset)) ) ); }