CachedResponse
Pennington.Infrastructure
A captured HTTP response — status, body, and headers — replayable as a fresh HttpResponseMessage any number of times. Headers are preserved verbatim so per-request signals the build relies on (the X-Pennington-Diagnostic headers, Location on redirects, Content-Type) survive replay.
Properties
Bodybyte[]- The response body bytes.
ContentHeadersIReadOnlyList<KeyValuePair<string, string[]>>- Captured content-level headers.
ResponseHeadersIReadOnlyList<KeyValuePair<string, string[]>>- Captured response-level headers.
StatusHttpStatusCode- The response status code.
Constructors
CachedResponse
#public CachedResponse(HttpStatusCode Status, byte[] Body, IReadOnlyList<KeyValuePair<string, string[]>> ResponseHeaders, IReadOnlyList<KeyValuePair<string, string[]>> ContentHeaders)
A captured HTTP response — status, body, and headers — replayable as a fresh HttpResponseMessage any number of times. Headers are preserved verbatim so per-request signals the build relies on (the X-Pennington-Diagnostic headers, Location on redirects, Content-Type) survive replay.
Parameters
StatusHttpStatusCode- The response status code.
Bodybyte[]- The response body bytes.
ResponseHeadersIReadOnlyList<KeyValuePair<string, string[]>>- Captured response-level headers.
ContentHeadersIReadOnlyList<KeyValuePair<string, string[]>>- Captured content-level headers.
Methods
CaptureAsync
#public static Task<CachedResponse> CaptureAsync(HttpResponseMessage response, CancellationToken ct)
Reads response fully into a replayable CachedResponse.
Parameters
responseHttpResponseMessagectCancellationToken
Returns
Task<CachedResponse>ToHttpResponseMessage
#public HttpResponseMessage ToHttpResponseMessage()
Rebuilds a fresh HttpResponseMessage from the captured state.
Returns
HttpResponseMessagePennington.Infrastructure.CachedResponse
namespace Pennington.Infrastructure;
/// A captured HTTP response — status, body, and headers — replayable as a fresh HttpResponseMessage any number of times. Headers are preserved verbatim so per-request signals the build relies on (the X-Pennington-Diagnostic headers, Location on redirects, Content-Type) survive replay.
public record CachedResponse
{
/// The response body bytes.
public byte[] Body { get; set; }
/// A captured HTTP response — status, body, and headers — replayable as a fresh HttpResponseMessage any number of times. Headers are preserved verbatim so per-request signals the build relies on (the X-Pennington-Diagnostic headers, Location on redirects, Content-Type) survive replay.
public CachedResponse(HttpStatusCode Status, byte[] Body, IReadOnlyList<KeyValuePair<string, string[]>> ResponseHeaders, IReadOnlyList<KeyValuePair<string, string[]>> ContentHeaders)
;
/// Reads response fully into a replayable CachedResponse.
public static Task<CachedResponse> CaptureAsync(HttpResponseMessage response, CancellationToken ct)
;
/// Captured content-level headers.
public IReadOnlyList<KeyValuePair<string, string[]>> ContentHeaders { get; set; }
/// Captured response-level headers.
public IReadOnlyList<KeyValuePair<string, string[]>> ResponseHeaders { get; set; }
/// The response status code.
public HttpStatusCode Status { get; set; }
/// Rebuilds a fresh HttpResponseMessage from the captured state.
public HttpResponseMessage ToHttpResponseMessage()
;
}