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");