客户端如何在c#中向服务器发送二进制数组数据

本文关键字:二进制 数组 数据 服务器 客户端 | 更新日期: 2023-09-27 18:12:14

我试图使用HttpWebRequest在c#发布一个byteArray。我不想将字节转换为字符串(或ToBase64String)。我只是想把byteArray原样发送到服务器。假设我的数据是

byte[] byteArray = { 0, 1, 5, 4, 0, 1, 55, 0, 1, 5, 4, 0, 1}

我应该在post参数中定义什么?

request.ContentType = "application/x-www-form-urlencoded"??? or request.ContentType = "application/octet-stream";???

我想我错过了一些大....(顺便说一下,服务器是WampServer (Koana,PHP,MySQL)

谢谢!

客户端如何在c#中向服务器发送二进制数组数据

更简单的方法是使用WebClient:

byte[] byteArray = { 0, 1, 5, 4, 0, 1, 55, 0, 1, 5, 4, 0, 1};
using(WebClient wc = new WebClient())
{
    wc.UploadData(someURL, byteArray);
}

对于二进制数据,您通常会使用application/octet-stream -但这不是必需的(取决于服务器),即上面的WebClient上传没有指定内容类型的头。

 byte[] byteArray = { 0, 1, 5, 4, 0, 1, 55, 0, 1, 5, 4, 0, 1}
 using (Stream requestStream = httpWebRequest.GetRequestStream()) {
     if (requestStream.CanWrite)
         requestStream.Write(byteArray, 0, postBytes.Length);
 }