【发布时间】:2020-06-30 04:03:56
【问题描述】:
我正在尝试将 System.Net.Http 用于 POST 请求。我可以接受 HTTP 响应正文在内存中,但需要为其获取 MemoryStream。一种方法是调用 HttpContent.GetAsByteArrayAsync() 并在其上包装一个 MemoryStream,但我认为这需要将内容复制到一个单独的字节数组中(因为它返回字节 [] 的任务)。
如果响应正文已经在 HttpContent 的某个内部缓冲区中,是否可以在该缓冲区之上创建 MemoryStream,或者以某种方式从 HttpContent 返回 MemoryStream 并避免复制到单独的字节数组?
还有 HttpContent.GetAsStreamAsync(),但它返回的是常规 Stream,而不是 MemoryStream。尽管它可能已经是 MemoryStream 的一个实例,但我认为将返回的流转换为 MemoryStream 是不安全的,也不是一种好的做法? (因为这是可能改变的实现细节)。
有没有其他方法可以做到这一点,还是我别无选择,只能先复制到 byte[] 中?
谢谢。
【问题讨论】:
标签: c# http post .net-core system.net