gpt4 book ai didi

c# - 通过 HttpWebRequest 传递二进制数据

转载 作者:太空狗 更新时间:2023-10-30 01:08:38 25 4
gpt4 key购买 nike

使用 .Net,我想通过 HttpWebRequest 传递一些二进制数据(一些序列化对象)。

我可以只把它放在请求流上,还是需要将它编码成 base64 字符串?

我的意思是如果我有:

byte[] data = new byte[1000];
GetSomeStrangeData(data);

我需要使用 Convert.ToBase64String 还是可以将它写入来自 HttpWebRequest.GetRequestStream 的流?


为了后代:

https://www.rfc-editor.org/rfc/rfc2616

http://msdn.microsoft.com/en-us/library/d4cek6cc.aspx

http://www.wireshark.org/

http://www.fiddler2.com

最佳答案

如果您通过 HttpWebRequest.GetRequestStream 将数据写入流,您将发送纯二进制数据,无需任何转换为​​ base64。您必须将接收端的数据解析为二进制流。

附带说明一下,在通过网络发送数据时,我也总是会避开 base64,因为它会增加传输数据的带宽。每转换为 base64 的 3 个字节将产生 4 个字节。因此,所有数据的开销为 33%。

编辑:这里对 Hellfrost 进行更深入的探讨。 HttpWebRequest.GetRequestStream 允许您对流进行较低级别的访问,进而允许您通过连接发送二进制数据。如果您尝试将数据发送到网络服务器,我建议您查看后数据和 multipart/form-data。您可以在这里阅读更多相关信息:Upload files with HTTPWebrequest (multipart/form-data)

关于c# - 通过 HttpWebRequest 传递二进制数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8911362/

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