private void generateRequestLine(MetaData.Request request,ByteBuffer header) { header.put(StringUtil.getBytes(request.getMethod())); header.put((byte)' '); header.put(StringUtil.getBytes(request.getURIString())); header.put((byte)' '); header.put(request.getHttpVersion().toBytes()); header.put(HttpTokens.CRLF); }
private void generateRequestLine(MetaData.Request request,ByteBuffer header) { header.put(StringUtil.getBytes(request.getMethod())); header.put((byte)' '); header.put(StringUtil.getBytes(request.getURIString())); header.put((byte)' '); header.put(request.getVersion().toBytes()); header.put(HttpTokens.CRLF); }
private void generateRequestLine(MetaData.Request request,ByteBuffer header) { header.put(StringUtil.getBytes(request.getMethod())); header.put((byte)' '); header.put(StringUtil.getBytes(request.getURIString())); header.put((byte)' '); header.put(request.getHttpVersion().toBytes()); header.put(HttpTokens.CRLF); }
@Override public Stream.Listener onPush(Stream stream, PushPromiseFrame frame) { HttpExchange exchange = getHttpExchange(); if (exchange == null) return null; HttpRequest request = exchange.getRequest(); MetaData.Request metaData = (MetaData.Request)frame.getMetaData(); HttpRequest pushRequest = (HttpRequest)getHttpDestination().getHttpClient().newRequest(metaData.getURIString()); // TODO: copy PUSH_PROMISE headers into pushRequest. BiFunction<Request, Request, Response.CompleteListener> pushListener = request.getPushListener(); if (pushListener != null) { Response.CompleteListener listener = pushListener.apply(request, pushRequest); if (listener != null) { HttpChannelOverHTTP2 pushChannel = getHttpChannel().getHttpConnection().acquireHttpChannel(); List<Response.ResponseListener> listeners = Collections.singletonList(listener); HttpExchange pushExchange = new HttpExchange(getHttpDestination(), pushRequest, listeners); pushChannel.associate(pushExchange); pushChannel.setStream(stream); // TODO: idle timeout ? pushExchange.requestComplete(null); pushExchange.terminateRequest(); return pushChannel.getStreamListener(); } } stream.reset(new ResetFrame(stream.getId(), ErrorCode.REFUSED_STREAM_ERROR.code), Callback.NOOP); return null; }
public void onRequest(MetaData.Request request) { _requests.incrementAndGet(); _request.setTimeStamp(System.currentTimeMillis()); HttpFields fields = _response.getHttpFields(); if (_configuration.getSendDateHeader() && !fields.contains(HttpHeader.DATE)) fields.put(_connector.getServer().getDateField()); long idleTO=_configuration.getIdleTimeout(); _oldIdleTimeout=getIdleTimeout(); if (idleTO>=0 && _oldIdleTimeout!=idleTO) setIdleTimeout(idleTO); request.setTrailerSupplier(_trailerSupplier); _request.setMetaData(request); _request.setSecure(HttpScheme.HTTPS.is(request.getURI().getScheme())); notifyRequestBegin(_request); if (LOG.isDebugEnabled()) LOG.debug("REQUEST for {} on {}{}{} {} {}{}{}",request.getURIString(),this,System.lineSeparator(), request.getMethod(),request.getURIString(),request.getHttpVersion(),System.lineSeparator(), request.getFields()); }