public InternalJettyServletRequest( String method, HttpURI uri, String body, Cookie[] cookies, String contentType, String encoding, InternalJettyServletResponse res, RequestData requestData ) throws UnsupportedEncodingException { super( null, null ); this.input = new Input( body ); this.inputReader = new BufferedReader( new StringReader( body ) ); this.contentType = contentType; this.cookies = cookies; this.method = method; this.response = res; this.requestData = requestData; this.headers = new HashMap<>(); setCharacterEncoding( encoding ); setDispatcherType( DispatcherType.REQUEST ); MetaData.Request request = new MetaData.Request( new HttpFields() ); request.setMethod( method ); request.setURI( uri ); setMetaData( request ); }
private static MetaData.Request toRequestMetadata(ServiceRequestContext ctx, AggregatedHttpMessage aReq) { // Construct the HttpURI final StringBuilder uriBuf = new StringBuilder(); final HttpHeaders aHeaders = aReq.headers(); uriBuf.append(ctx.sessionProtocol().isTls() ? "https" : "http"); uriBuf.append("://"); uriBuf.append(aHeaders.authority()); uriBuf.append(aHeaders.path()); final HttpURI uri = new HttpURI(uriBuf.toString()); uri.setPath(ctx.mappedPath()); // Convert HttpHeaders to HttpFields final HttpFields jHeaders = new HttpFields(aHeaders.size()); aHeaders.forEach(e -> { final AsciiString key = e.getKey(); if (!key.isEmpty() && key.byteAt(0) != ':') { jHeaders.add(key.toString(), e.getValue()); } }); return new MetaData.Request( aHeaders.method().name(), uri, HttpVersion.HTTP_1_1, jHeaders, aReq.content().length()); }
public InternalJettyServletRequest( String method, HttpURI uri, String body, Cookie[] cookies, String contentType, String encoding, InternalJettyServletResponse res, RequestData requestData ) throws UnsupportedEncodingException { super( null, null ); this.input = new Input( body ); this.inputReader = new BufferedReader( new StringReader( body ) ); this.contentType = contentType; this.cookies = cookies; this.method = method; this.response = res; this.requestData = requestData; this.headers = new HashMap<>(); setCharacterEncoding( encoding ); setDispatcherType( DispatcherType.REQUEST ); MetaData.Request request = new MetaData.Request( new HttpFields() ); request.setMethod( method ); request.setURI( uri ); setMetaData( request ); }
requestFields.put("User-Agent", client.getClass().getName() + "/" + Jetty.VERSION); MetaData.Request request = new MetaData.Request("GET", new HttpURI("https://" + host + ":" + port + "/"), HttpVersion.HTTP_2, requestFields);
MetaData.Request push = new MetaData.Request(_method,uri,_request.getHttpVersion(),_fields);
if (_path==null) throw new HpackException.StreamException("No Path"); return new MetaData.Request(_method,_scheme,_authority,_path,HttpVersion.HTTP_2,fields,_contentLength);
MetaData.Request push = new MetaData.Request(_method,uri,_request.getHttpVersion(),_fields);
String path = relativize(request.getPath()); HttpURI uri = HttpURI.createHttpURI(request.getScheme(), request.getHost(), request.getPort(), path, null, request.getQuery(), null); MetaData.Request metaData = new MetaData.Request(request.getMethod(), uri, HttpVersion.HTTP_2, request.getHeaders()); Supplier<HttpFields> trailers = request.getTrailers(); metaData.setTrailerSupplier(trailers);
public boolean upgrade(Request request) { if (HttpMethod.PRI.is(request.getMethod())) { getParser().directUpgrade(); } else { HttpField settingsField = request.getFields().getField(HttpHeader.HTTP2_SETTINGS); if (settingsField == null) throw new BadMessageException("Missing " + HttpHeader.HTTP2_SETTINGS + " header"); String value = settingsField.getValue(); final byte[] settings = B64Code.decodeRFC4648URL(value == null ? "" : value); if (LOG.isDebugEnabled()) LOG.debug("{} settings {}",this,TypeUtil.toHexString(settings)); SettingsFrame settingsFrame = SettingsBodyParser.parseBody(BufferUtil.toBuffer(settings)); if (settingsFrame == null) { LOG.warn("Invalid {} header value: {}", HttpHeader.HTTP2_SETTINGS, value); throw new BadMessageException(); } getParser().standardUpgrade(); upgradeFrames.add(new PrefaceFrame()); upgradeFrames.add(settingsFrame); // Remember the request to send a response from onOpen(). upgradeFrames.add(new HeadersFrame(1, new Request(request), null, true)); } return true; }
/** * <p>Pushes a secondary resource identified by this dispatcher.</p> * * @param request the primary request * @deprecated Use {@link Request#getPushBuilder()} instead */ @Deprecated public void push(ServletRequest request) { Request baseRequest = Request.getBaseRequest(request); HttpFields fields = new HttpFields(baseRequest.getHttpFields()); String query=baseRequest.getQueryString(); if (_uri.hasQuery()) { if (query==null) query=_uri.getQuery(); else query=query+"&"+_uri.getQuery(); // TODO is this correct semantic? } HttpURI uri = HttpURI.createHttpURI(request.getScheme(),request.getServerName(),request.getServerPort(),_uri.getPath(),baseRequest.getHttpURI().getParam(),query,null); MetaData.Request push = new MetaData.Request(HttpMethod.GET.asString(),uri,baseRequest.getHttpVersion(),fields); baseRequest.getHttpChannel().getHttpTransport().push(push); }
public HeadersCallback(HttpExchange exchange, HttpContent content, Callback callback, HttpConnectionOverHTTP httpConnectionOverHTTP) { super(false); this.exchange = exchange; this.callback = callback; this.httpConnectionOverHTTP = httpConnectionOverHTTP; HttpRequest request = exchange.getRequest(); ContentProvider requestContent = request.getContent(); long contentLength = requestContent == null ? -1 : requestContent.getLength(); String path = request.getPath(); String query = request.getQuery(); if (query != null) path += "?" + query; metaData = new MetaData.Request(request.getMethod(), new HttpURI(path), request.getVersion(), request.getHeaders(), contentLength); metaData.setTrailerSupplier(request.getTrailers()); if (!expects100Continue(request)) { content.advance(); contentBuffer = content.getByteBuffer(); lastContent = content.isLast(); } }