} else if(exchange.getRequestContentLength() > 0 && exchange.getRequestContentLength() < maxBufferedSize) { exchange.getRequestReceiver().receiveFullBytes(new Receiver.FullBytesCallback() { @Override public void handle(HttpServerExchange exchange, byte[] message) { } else { final ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); exchange.getRequestReceiver().receivePartialBytes(new Receiver.PartialBytesCallback() { @Override public void handle(HttpServerExchange exchange, byte[] message, boolean last) {
@Override public void handle(HttpServerExchange exchange, byte[] message, boolean last) { try { outputStream.write(message); if(last) { handleHttp2Upgrade(exchange, upgrade, settings, outputStream.toByteArray()); } else if(outputStream.size() >= maxBufferedSize) { exchange.getRequestReceiver().pause(); Connectors.ungetRequestBytes(exchange, new ImmediatePooledByteBuffer(ByteBuffer.wrap(outputStream.toByteArray()))); Connectors.resetRequestChannel(exchange); next.handleRequest(exchange); } } catch (IOException e) { UndertowLogger.REQUEST_IO_LOGGER.ioException(e); exchange.endExchange(); } catch (RuntimeException e) { throw e; } catch (Exception e) { throw new RuntimeException(e); } } });
private void extractBytes() throws IOException { this.exchange.getRequestReceiver().receiveFullBytes(new Receiver.FullBytesCallback() { @Override public void handle(HttpServerExchange exchange, byte[] message) { ByteBuffer buffer = ByteBuffer.wrap(message); exchange.putAttachment(BYTE_BUFFER_KEY, buffer); } },ERROR_CALLBACK); }
private void readMessage(HttpServerExchange exchange, AttachmentContent attachment) { ByteArrayOutputStream messageContent = new ByteArrayOutputStream(); MessageState state = attachment.getMessageState(); StartedTimersPair readingTimers = attachment.getCachedTopic().startRequestReadTimers(); Receiver receiver = exchange.getRequestReceiver(); attachment.getTimeoutHolder().onTimeout((Void) -> { readingTimers.close(); receiver.pause(); }); if (state.setReading()) { receiver.receivePartialBytes( partialMessageRead(state, messageContent, readingTimers, attachment), readingError(state, readingTimers, attachment)); } else { readingTimers.close(); messageErrorProcessor.sendAndLog( exchange, attachment.getTopic(), attachment.getMessageId(), error("Probably context switching problem as timeout elapsed before message reading was started", INTERNAL_ERROR)); } }
Properties config = new Properties(); exchange.getRequestReceiver().receiveFullString((e, data) -> { ConfigResponseDto configResponseDto = new Gson().fromJson(data, ConfigResponseDto.class); config.put("min_players", String.valueOf(configResponseDto.minPlayers));
public void receiveFullBytesAndProceed(final ActionContext context, final RequestHandler handler) { ActionContext.clearLocal(); hse.getRequestReceiver().receiveFullBytes(new Receiver.FullBytesCallback() { @Override public void handle(HttpServerExchange exchange, byte[] message) { body = message; context.saveLocal(); handler.handle(context); } }); }
@Override public void handleRequest(HttpServerExchange exchange) { if (exchange.getRequestMethod() == Methods.GET) { exchange.getResponseSender().send(reply); } else if (exchange.getRequestMethod() == Methods.POST) { exchange.getRequestReceiver().receiveFullString(new Receiver.FullStringCallback() { @Override public void handle(HttpServerExchange exchange, String message) { reply = message; exchange.setStatusCode(204); } }); } } };
} else if(exchange.getRequestContentLength() > 0 && exchange.getRequestContentLength() < maxBufferedSize) { exchange.getRequestReceiver().receiveFullBytes(new Receiver.FullBytesCallback() { @Override public void handle(HttpServerExchange exchange, byte[] message) { } else { final ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); exchange.getRequestReceiver().receivePartialBytes(new Receiver.PartialBytesCallback() { @Override public void handle(HttpServerExchange exchange, byte[] message, boolean last) {
public void receiveFullBytesAndProceed(final ActionContext context, final RequestHandler handler) { ActionContext.clearLocal(); hse.getRequestReceiver().receiveFullBytes(new Receiver.FullBytesCallback() { @Override public void handle(HttpServerExchange exchange, byte[] message) { body = message; context.saveLocal(); handler.handle(context); } }); }
exchange.getRequestReceiver().receiveFullString((ex, data) -> { requestBody.append(data); }); exchange.getRequestReceiver().receiveFullString((ex, data) -> { requestBody.append(data); });
@Override public void handle(HttpServerExchange exchange, byte[] message, boolean last) { try { outputStream.write(message); if(last) { handleHttp2Upgrade(exchange, upgrade, settings, outputStream.toByteArray()); } else if(outputStream.size() >= maxBufferedSize) { exchange.getRequestReceiver().pause(); Connectors.ungetRequestBytes(exchange, new ImmediatePooledByteBuffer(ByteBuffer.wrap(outputStream.toByteArray()))); Connectors.resetRequestChannel(exchange); next.handleRequest(exchange); } } catch (IOException e) { UndertowLogger.REQUEST_IO_LOGGER.ioException(e); exchange.endExchange(); } catch (RuntimeException e) { throw e; } catch (Exception e) { throw new RuntimeException(e); } } });
} else if(exchange.getRequestContentLength() > 0 && exchange.getRequestContentLength() < maxBufferedSize) { exchange.getRequestReceiver().receiveFullBytes(new Receiver.FullBytesCallback() { @Override public void handle(HttpServerExchange exchange, byte[] message) { } else { final ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); exchange.getRequestReceiver().receivePartialBytes(new Receiver.PartialBytesCallback() { @Override public void handle(HttpServerExchange exchange, byte[] message, boolean last) {
@Override public void handleRequest(HttpServerExchange exchange) throws Exception { boolean v2 = exchange.getRelativePath().equals("/api/v2/spans"); boolean v1 = !v2 && exchange.getRelativePath().equals("/api/v1/spans"); if (!v2 && !v1) { next.handleRequest(exchange); return; } if (!POST.equals(exchange.getRequestMethod())) { next.handleRequest(exchange); return; } String contentTypeValue = exchange.getRequestHeaders().getFirst(CONTENT_TYPE); boolean json = contentTypeValue == null || contentTypeValue.startsWith("application/json"); boolean thrift = !json && contentTypeValue.startsWith("application/x-thrift"); boolean proto = v2 && !json && contentTypeValue.startsWith("application/x-protobuf"); if (!json && !thrift && !proto) { exchange .setStatusCode(400) .getResponseSender() .send("unsupported content type " + contentTypeValue + "\n"); return; } HttpCollector collector = v2 ? (json ? JSON_V2 : PROTO3) : thrift ? THRIFT : JSON_V1; metrics.incrementMessages(); exchange.getRequestReceiver().receiveFullBytes(collector, errorCallback); }
exchange.getRequestReceiver().receiveFullString((ex, data) -> { requestBody.append(data); }); exchange.getRequestReceiver().receiveFullString((ex, data) -> { requestBody.append(data); });
@Override public void handle(HttpServerExchange exchange, byte[] message, boolean last) { try { outputStream.write(message); if(last) { handleHttp2Upgrade(exchange, upgrade, settings, outputStream.toByteArray()); } else if(outputStream.size() >= maxBufferedSize) { exchange.getRequestReceiver().pause(); Connectors.ungetRequestBytes(exchange, new ImmediatePooledByteBuffer(ByteBuffer.wrap(outputStream.toByteArray()))); Connectors.resetRequestChannel(exchange); next.handleRequest(exchange); } } catch (IOException e) { UndertowLogger.REQUEST_IO_LOGGER.ioException(e); exchange.endExchange(); } catch (RuntimeException e) { throw e; } catch (Exception e) { throw new RuntimeException(e); } } });
.addHttpListener(port, "localhost") .setHandler(ex -> { ex.getRequestReceiver().receiveFullBytes((exchange, bytes) -> { try { DefaultRequest request = new DefaultRequest(
receiveFullString( new FullStringCallback() { @Override
exchange.getRequestReceiver().receiveFullString((ex, data) -> { try {
exchange.getRequestReceiver().receiveFullString((ex, data) -> { try {