我正在编写一个基于HttpListener的服务器,它接受二进制文件并上传到S3。我想在实际阅读整个请求之前拒绝大文件。这是我的方法:
var ctx = await listener.GetContextAsync();
var req = ctx.Request;
if ( req.ContentLength64 > SIZE_LIMIT )
result = ERROR_RESPONSE;
else
{
using ( BinaryReader r = new BinaryReader( req.InputStream ) )
{
bytes = r.ReadBytes( Convert.ToInt32( req.ContentLength64 ) );
upload( bytes );
}
}
所以,我的问题是,如果我在从InputStream读取任何内容之前检查HttpListenerRequest.ContentLength64,HttpListener不读取二进制内容,是吗?