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

时间:2016-02-22 12:19:54

标签: c# asp.net asp.net-mvc asp.net-core asp.net-core-mvc

我有这个代码在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();           
    } 

错误在:

byte[] parameters = Request.BinaryRead(Request.ContentLength);
  

HttpRequest不包含BinaryRead的定义,不包含   扩展方法BinaryRead接受类型的第一个参数   可以找到HttpRequest(你是否错过了使用指令或者   汇编参考?)。

我已经测试了这样的事情,但没有工作:

HttpContext.Request.BinaryRead

感谢。

编辑:类似问题 - > Error in binary read

1 个答案:

答案 0 :(得分:4)

HttpRequestFeature对象现在提供body which is a stream。所以这应该工作。

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

然后......

 var paramArray = ReadRequestBody(Request.Body);