【问题标题】:Post and read binary data in ASP.NET MVC在 ASP.NET MVC 中发布和读取二进制数据
【发布时间】:2011-07-14 13:48:13
【问题描述】:

我在通过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();
}

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

public ActionResult UploadChunk(Guid? uploadID, int? chunkNum, byte[] data)

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

【问题讨论】:

  • 确切的异常消息和堆栈跟踪是什么?
  • 这里是堆栈跟踪部分 - System.Convert.FromBase64String(String s) - System.Web.Mvc.ByteArrayModelBinder.BindModel(ControllerContext
  • 异常信息已本地化

标签: c# asp.net-mvc binary http-post


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2017-07-22
    • 1970-01-01
    • 1970-01-01
    • 2018-03-08
    • 2017-07-10
    • 2019-03-28
    • 1970-01-01
    • 2010-12-08
    • 1970-01-01
    相关资源
    最近更新 更多