Read Http Request into Byte array

后端 未结 6 1561
情话喂你
情话喂你 2021-02-05 01:15

I\'m developing a web page that needs to take an HTTP Post Request and read it into a byte array for further processing. I\'m kind of stuck on how to do this, and I\'m stumped

6条回答
  •  独厮守ぢ
    2021-02-05 01:58

    The simplest way is to copy it to a MemoryStream - then call ToArray if you need to.

    If you're using .NET 4, that's really easy:

    MemoryStream ms = new MemoryStream();
    curContext.Request.InputStream.CopyTo(ms);
    // If you need it...
    byte[] data = ms.ToArray();
    

    EDIT: If you're not using .NET 4, you can create your own implementation of CopyTo. Here's a version which acts as an extension method:

    public static void CopyTo(this Stream source, Stream destination)
    {
        // TODO: Argument validation
        byte[] buffer = new byte[16384]; // For example...
        int bytesRead;
        while ((bytesRead = source.Read(buffer, 0, buffer.Length)) > 0)
        {
            destination.Write(buffer, 0, bytesRead);
        }
    }
    

提交回复
热议问题