public static async Task SimpleRequest_Succeeds()
{
string url = UrlPrefix.CreateLocal();
const string expectedResponse = "hello from HttpListener";
using (HttpListener listener = new HttpListener())
{
listener.Prefixes.Add(url);
listener.Start();
var serverContextTask = listener.GetContextAsync();
using (HttpClient client = new HttpClient())
{
var clientTask = client.GetStringAsync(url);
var serverContext = await serverContextTask;
using (var response = serverContext.Response)
{
var responseBuffer = Encoding.UTF8.GetBytes(expectedResponse);
response.ContentLength64 = responseBuffer.Length;
using (var output = response.OutputStream)
{
await output.WriteAsync(responseBuffer, 0, responseBuffer.Length);
}
}
var clientString = await clientTask;
Assert.Equal(expectedResponse, clientString);
}
listener.Stop();
}
}
}