来自HttpContent的MemoryStream,无需复制

问题描述 投票:0回答:2

我正在尝试将System.Net.Http用于POST请求。我可以将HTTP响应主体放在内存中,但需要为其获取MemoryStream。一种方法是调用HttpContent.GetAsByteArrayAsync()并将MemoryStream包装在其顶部,但是我认为这将需要将内容复制到单独的字节数组中(因为它返回byte的Task [])。] >

如果响应主体已经在HttpContent的某个内部缓冲区中,是否有可能在该缓冲区的顶部创建MemoryStream,或者以某种方式从HttpContent返回MemoryStream并避免复制到单独的字节数组?

也有HttpContent.GetAsStreamAsync(),但是它返回常规Stream,而不是MemoryStream。即使它可能已经是MemoryStream的一个实例,我想将返回的流强制转换为MemoryStream还是不安全或良好的做法? (因为这是可以更改的实现细节)。

还有其他方法吗,还是别无选择,只能先复制到byte []?

谢谢。

我正在尝试将System.Net.Http用于POST请求。我可以将HTTP响应主体放在内存中,但需要为其获取MemoryStream。一种方法是调用HttpContent ....

c# http post .net-core system.net
2个回答
1
投票

0
投票
只读
© www.soinside.com 2019 - 2024. All rights reserved.