在 ASP.NET MVC 中发布和读取二进制数据

Ale*_*lex 5 c# binary asp.net-mvc http-post

我在通过将二进制数据发布到服务器时遇到问题HttpWebRequest。这是我的客户端代码:

var request = (HttpWebRequest)WebRequest.Create(uri);
request.Method = "POST";
request.UserAgent = RequestUserAgent;
request.ContentType = "application/x-www-form-urlencoded";
var responseStr = "";
var dataStr = Convert.ToBase64String(data);
var postData = Encoding.UTF8.GetBytes(
string.Format("uploadid={0}&chunknum={1}&data={2}", uploadId, chunkNum, dataStr));
using (var dataStream = request.GetRequestStream())
{
    dataStream.Write(postData, 0, postData.Length);
    dataStream.Close();
}
Run Code Online (Sandbox Code Playgroud)

然后我想通过 MVC 控制器处理请求,这是它的签名:

public ActionResult UploadChunk(Guid? uploadID, int? chunkNum, byte[] data)
Run Code Online (Sandbox Code Playgroud)

但我这里有错误,说 data 不是 Base64 编码的数组,我做错了什么?

SLa*_*aks 3

您需要+通过调用转义 Base64 中的字符Uri.EscapeDataString。