2016-02-22 4 views
4

Я имел этот код работает в ASP.NET MVC 5, но я не могу сделать это работает в ASP.NET MVC 6 (ASP.NET 5)Запрос BinaryRead в ASP.NET 5 (MVC6)

Может кто-нибудь Помогите мне?

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 можно найти (вы пропали без вести директива using или ссылка на сборку ?).

Я испытал нечто вроде этого, но не работает:

HttpContext.Request.BinaryRead 

Спасибо.

Edit: Похожие quesiton ->Error in binary read

+0

И .. что это ошибка? –

+0

В запросе должен быть поток Body, который вы должны прочитать в байте []. Не могли бы вы дать такой подход? –

ответ

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); 
Смежные вопросы