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 at the same URL with .md appended. 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()
; }