在 ASP.NET 5 (MVC6) 中请求 BinaryRead

che*_*xis 5 c# asp.net asp.net-mvc asp.net-core-mvc asp.net-core

我有这段代码在 ASP.NET MVC 5 中工作,但我不能让它在 ASP.NET MVC 6 (ASP.NET 5) 中工作

有人能帮我吗?

public EmptyResult PayPalPaymentNotification(PayPalCheckoutInfo payPalCheckoutInfo)         
    { 
      PayPalListenerModel model = new PayPalListenerModel();             
      model._PayPalCheckoutInfo = payPalCheckoutInfo;               
      byte[] parameters = Request.BinaryRead(Request.ContentLength);

      if (parameters != null)             
      {                 
        model.GetStatus(parameters);             
      }

      return new EmptyResult();           
    } 
Run Code Online (Sandbox Code Playgroud)

错误在:

byte[] parameters = Request.BinaryRead(Request.ContentLength);
Run Code Online (Sandbox Code Playgroud)

HttpRequest 不包含 BinaryRead 的定义,并且找不到接受 HttpRequest 类型的第一个参数的扩展方法 BinaryRead(您是否缺少 using 指令或程序集引用?)。

我已经测试过类似的东西,但不起作用:

HttpContext.Request.BinaryRead
Run Code Online (Sandbox Code Playgroud)

谢谢。

编辑:类似问题 ->二进制读取错误

Muq*_*han 5

HttpRequestFeature 对象现在提供了一个主体,它是一个流。所以这应该有效。

    public static byte[] ReadRequestBody(Stream input)
    {
        using (MemoryStream ms = new MemoryStream())
        {
            input.CopyTo(ms);
            return ms.ToArray();
        }
    }
Run Code Online (Sandbox Code Playgroud)

进而 ...

 var paramArray = ReadRequestBody(Request.Body);
Run Code Online (Sandbox Code Playgroud)