class HtmlRequestMessageData
{
    public readonly string Content;
    public readonly HttpMethod Method;
    public readonly Uri RequestUri;

    [JsonConstructor]
    HtmlRequestMessageData(HttpMethod method, Uri requestUri, string content)
    {
        this.Method = method;
        this.RequestUri = requestUri;
        this.Content = content;
    }

    public static async Task<HtmlRequestMessageData> FromHttpRequestMessage(HttpRequestMessage request)
    {
        return new HtmlRequestMessageData(request.Method, request.RequestUri,
            await (request.Content?.ReadAsStringAsync()).OrDefault());
    }
}