/// <summary> /// Fires the WritingRequest event on the <paramref name="requestInfo"/> instance. /// </summary> /// <param name="requestHeaders">Request Headers</param> /// <param name="readableStream">A stream which can be read.</param> /// <param name="isBatchPart">Boolean flag indicating if this request is part of a batch request..</param> /// <param name="requestInfo">Request information to help fire events on the context.</param> /// <param name="requestMessage">The request message to apply the headers to.</param> /// <param name="ignoreAcceptHeader">If set to true the Accept header will be ignored.</param> /// <returns>A stream containing the content of the request/response.</returns> internal static Stream FireWritingRequest(HeaderCollection requestHeaders, Stream readableStream, bool isBatchPart, RequestInfo requestInfo, IODataRequestMessage requestMessage, bool ignoreAcceptHeader) { ReadingWritingHttpMessageEventArgs args = new ReadingWritingHttpMessageEventArgs(requestHeaders, readableStream, isBatchPart); var rewrittenArgs = requestInfo.FireWritingRequestEvent(args); WebUtil.ApplyHeadersToRequest(rewrittenArgs.HeaderCollection, requestMessage, true); return(rewrittenArgs.Content); }
/// <summary> /// Fires the ReadingResponse event /// </summary> /// <param name="isBatchPart">Boolean flag indicating if this request is part of a batch request..</param> internal void FireReadingResponse(bool isBatchPart) { var readableStream = new MemoryStream(); var requestStream = this.GetStream(); try { WebUtil.CopyStream(requestStream, readableStream, ref this.streamCopyBuffer); readableStream.Position = 0; } finally { requestStream.Dispose(); } ReadingWritingHttpMessageEventArgs args = new ReadingWritingHttpMessageEventArgs(this.HeaderCollection, readableStream, isBatchPart); var rewrittenArgs = this.requestInfo.FireReadingResponseEvent(args); this.cachedResponseStream = rewrittenArgs.Content; ApplyHeadersToResponse(rewrittenArgs.HeaderCollection, this); }
/// <summary> /// Fires the ReadingResponse event /// </summary> /// <param name="args">Arguments for raising this event.</param> /// <returns>The re-written arguments which includes the request stream and the request headers.</returns> internal ReadingWritingHttpMessageEventArgs FireReadingResponseEvent(ReadingWritingHttpMessageEventArgs args) { return(this.Context.FireReadingResponseEvent(args)); }