Table of Contents

Request Content

HttpBuildR provides a set of methods to modify the content of an HttpRequestMessage object in a fluent manner.

WithContent Method

The WithContent method modifies the request content.

Usage:


HttpRequestMessage request = new HttpRequestMessage();
request = request.WithContent(new StringContent("content"));
string result = await request.Content!.ReadAsStringAsync();
result.Should().Be("content");
request.Content.Headers.ContentType!.ToString().Should().Be("text/plain; charset=utf-8");

WithJsonContent Method

The WithJsonContent method modifies the request content with JSON StringContent.

Usage:


HttpRequestMessage request = new HttpRequestMessage();
request = request.WithJsonContent(new { Name = "Ben", Age = "Unknown" });
string result = await request.Content!.ReadAsStringAsync();
result.Should().Be("{\"Name\":\"Ben\",\"Age\":\"Unknown\"}");
request
    .Content.Headers.ContentType!.ToString()
    .Should()
    .Be("application/json; charset=utf-8");

WithXmlContent Method

The WithXmlContent method modifies the request content with XML StringContent.

Usage:


[XmlRoot("Widget")]
public class Widget
{
    public string Name { get; set; }
    public int PartNumber { get; set; }
}

[Fact]
public async Task TestWithXmlContentMethod()
{
    HttpRequestMessage request = new HttpRequestMessage();
    request = request.WithXmlContent(new Widget { Name = "Doohickey", PartNumber = 10 });
    string result = await request.Content!.ReadAsStringAsync();
    result
        .Should()
        .Be(
            "<?xml version=\"1.0\" encoding=\"utf-8\"?>"
                + "<Widget xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">"
                + "<Name>Doohickey</Name>"
                + "<PartNumber>10</PartNumber>"
                + "</Widget>"
        );
    request.Content.Headers.ContentType!.ToString().Should().Be("text/xml; charset=utf-8");
}

WithTextContent Method

The WithTextContent method modifies the request content with text StringContent.

Usage:


HttpRequestMessage request = new HttpRequestMessage();
request = request.WithTextContent("content");
string result = await request.Content!.ReadAsStringAsync();
result.Should().Be("content");
request.Content.Headers.ContentType!.ToString().Should().Be("text/plain; charset=utf-8");

WithFormUrlContent Method

The WithFormUrlContent method modifies the request content with FormUrlEncodedContent.

Usage:


HttpRequestMessage request = new HttpRequestMessage();
request = request.WithFormUrlContent(new KeyValuePair<string, string>("key", "value"));
string result = await request.Content!.ReadAsStringAsync();
result.Should().Be("key=value");
request
    .Content.Headers.ContentType!.ToString()
    .Should()
    .Be("application/x-www-form-urlencoded");