-
-
Save leggetter/769688 to your computer and use it in GitHub Desktop.
private string GetDocumentContents(System.Web.HttpRequestBase Request) | |
{ | |
string documentContents; | |
using (Stream receiveStream = Request.InputStream) | |
{ | |
using (StreamReader readStream = new StreamReader(receiveStream, Encoding.UTF8)) | |
{ | |
documentContents = readStream.ReadToEnd(); | |
} | |
} | |
return documentContents; | |
} |
I am using this code inside a specflow step definiton to capture the body of http request like below.
but I am getting error. Can anybody help?
binding error: Parameter count mismatch! The binding method 'TestFeature.WhenBrowserPayLoadIsExtracted(HttpRequestBase)' should have 0 parameters
[When(@"Browser payload is extracted")]
private string WhenBrowserPayLoadIsExtracted(HttpRequestBase Request)
{
string documentContents;
using (Stream receiveStream = Request.InputStream)
{
using (StreamReader readStream = new StreamReader(receiveStream, Encoding.UTF8))
{
documentContents = readStream.ReadToEnd();
}
}
return documentContents;
}
thanks
public async static Task<string> GetBodyContentAsStringAsync(HttpRequestBase request)
{
string content = string.Empty;
using (Stream receiveStream = request.InputStream)
using (StreamReader readStream = new StreamReader(receiveStream, request.ContentEncoding))
{ content = await readStream.ReadToEndAsync(); }
return content;
}
Thanks, and modernized.
Also, depending on your system this is avaliable:
var rawMessage = await Request.Content.ReadAsStringAsync();
You should be careful with disposing! if you look at native BinaryRead method - it uses InputStream as well but does not dispose it.
You sould use the Request.ContentEncoding