public MazeRequestReceivedEventArgs(MazeRequest request, MazeResponse response, CancellationToken cancellationToken) { Request = request; Response = response; CancellationToken = cancellationToken; }
public static int ParseRequest(ArraySegment <byte> buffer, out MazeRequest request) { var memoryStream = new MemoryStream(buffer.Array, buffer.Offset, buffer.Count, false); var streamReader = new StreamReader(memoryStream, Encoding); request = DecodeRequest(streamReader); return(GetBodyPosition(buffer) - buffer.Offset); }
public HttpResponseStream(DefaultMazeResponse response, MazeRequest request, IDataSocket socket, int packageBufferSize, int maxHeaderSize, CancellationToken requestCancellationToken) { _response = response; _request = request; _socket = socket; _packageBufferSize = packageBufferSize; _maxHeaderSize = maxHeaderSize; _requestCancellationToken = requestCancellationToken; }
public DefaultMazeContext(MazeRequest request, MazeResponse response, IServiceProvider serviceProvider) { Request = request; Response = response; Request.Context = this; RequestServices = serviceProvider; _requestCancellationTokenSource = new CancellationTokenSource(); RequestAborted = _requestCancellationTokenSource.Token; }
public HttpResponseStream(DefaultMazeResponse response, MazeRequest request, IDataSocket socket, int packageBufferSize, int maxHeaderSize, ArrayPool <byte> bufferPool, CancellationToken requestCancellationToken) { _response = response; _request = request; _socket = socket; _packageBufferSize = packageBufferSize; _maxHeaderSize = maxHeaderSize; _bufferPool = bufferPool; _requestCancellationToken = requestCancellationToken; _customOffset = socket.RequiredPreBufferLength ?? 0; }
public static HttpRequestMessage ToHttpRequestMessage(this MazeRequest request) { var builder = new UriBuilder { Path = request.Path, Query = request.QueryString.Value }; var message = new HttpRequestMessage(new HttpMethod(request.Method), builder.Uri) { Content = new RawStreamContent(request.Body) }; request.Headers.CopyHeadersTo(message.Headers, message.Content.Headers); return(message); }
public static MazeRequest EnableRewind(this MazeRequest request, int bufferThreshold = DefaultBufferThreshold, long?bufferLimit = null) { if (request == null) { throw new ArgumentNullException(nameof(request)); } var body = request.Body; if (!body.CanSeek) { var fileStream = new Microsoft.AspNetCore.WebUtilities.FileBufferingReadStream(body, bufferThreshold, bufferLimit, _getTempDirectory); request.Body = fileStream; request.Context.Response.RegisterForDispose(fileStream); } return(request); }
private List <MediaTypeSegmentWithQuality> GetAcceptableMediaTypes(MazeRequest request) { var result = new List <MediaTypeSegmentWithQuality>(); AcceptHeaderParser.ParseAcceptHeader(request.Headers[HeaderNames.Accept], result); for (var i = 0; i < result.Count; i++) { var mediaType = new MediaType(result[i].MediaType); if (!_respectBrowserAcceptHeader && mediaType.MatchesAllSubTypes && mediaType.MatchesAllTypes) { result.Clear(); return(result); } } result.Sort(_sortFunction); return(result); }
public static RequestHeaders GetTypedHeaders(this MazeRequest request) { return(new RequestHeaders(request.Headers)); }
protected override async Task AssertReceivedRequest(HttpRequestMessage requestMessage, MazeRequest request) { await base.AssertReceivedRequest(requestMessage, request); Assert.Equal("Hello World!", await new StreamReader(request.Body).ReadToEndAsync()); }
protected virtual Task AssertReceivedRequest(HttpRequestMessage requestMessage, MazeRequest request) { Assert.Equal(requestMessage.Method.Method, request.Method); Assert.Equal(requestMessage.RequestUri.LocalPath, request.Path); return(Task.CompletedTask); }
/// <summary> /// Ensure the <paramref name="request" /> <see cref="MazeRequest.Body" /> can be read multiple times. Normally /// buffers request bodies in memory; writes requests larger than 30K bytes to disk. /// </summary> /// <param name="request">The <see cref="MazeRequest" /> to prepare.</param> /// <remarks> /// Temporary files for larger requests are written to the location named in the <c>ASPNETCORE_TEMP</c> /// environment variable, if any. If that environment variable is not defined, these files are written to the /// current user's temporary folder. Files are automatically deleted at the end of their associated requests. /// </remarks> public static void EnableBuffering(this MazeRequest request) { request.EnableRewind(); }
public Task Execute(MazeRequest request, CommandTargetCollection targets, CommandExecutionPolicy executionPolicy) => throw new NotImplementedException();