This documentation is also published as Markdown for efficient machine reading: the whole site is indexed at /llms.txt, and every page has a clean Markdown copy under /_llms/. These are generated from the same source and cost far fewer tokens to read than this rendered HTML.

Skip to main content Skip to navigation

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

Body byte[]
The response body bytes.
ContentHeaders IReadOnlyList<KeyValuePair<string, string[]>>
Captured content-level headers.
ResponseHeaders IReadOnlyList<KeyValuePair<string, string[]>>
Captured response-level headers.
Status HttpStatusCode
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

Status HttpStatusCode
The response status code.
Body byte[]
The response body bytes.
ResponseHeaders IReadOnlyList<KeyValuePair<string, string[]>>
Captured response-level headers.
ContentHeaders IReadOnlyList<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

response HttpResponseMessage
ct CancellationToken

Returns

Task<CachedResponse>

ToHttpResponseMessage

#
public HttpResponseMessage ToHttpResponseMessage()

Rebuilds a fresh HttpResponseMessage from the captured state.

Returns

HttpResponseMessage

Pennington.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()
; }