gpt4 book ai didi

c# - 将 Http 请求读入字节数组

转载 作者:IT王子 更新时间:2023-10-29 04:10:27 25 4
gpt4 key购买 nike

我正在开发一个网页,需要接收 HTTP 发布请求并将其读入字节数组以进行进一步处理。我有点卡在如何做到这一点上,我对什么是最好的完成方式感到困惑。到目前为止,这是我的代码:

 public override void ProcessRequest(HttpContext curContext)
{
if (curContext != null)
{
int totalBytes = curContext.Request.TotalBytes;
string encoding = curContext.Request.ContentEncoding.ToString();
int reqLength = curContext.Request.ContentLength;
long inputLength = curContext.Request.InputStream.Length;
Stream str = curContext.Request.InputStream;

}
}

我正在检查请求的长度及其等于 128 的总字节数。现在我是否只需要使用 Stream 对象将其转换为 byte[] 格式?我正朝着正确的方向前进吗?不确定如何进行。任何建议都会很棒。我需要将整个 HTTP 请求放入 byte[] 字段。

谢谢!

最佳答案

最简单的方法是将其复制到 MemoryStream - 然后在需要时调用 ToArray

如果您使用的是 .NET 4,那真的很简单:

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

编辑:如果您不使用 .NET 4,您可以创建自己的 CopyTo 实现。这是一个充当扩展方法的版本:

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

关于c# - 将 Http 请求读入字节数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9948463/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com