asp.net core 中讀取post 方式來的內容


很慚愧,折騰了好幾天才發現問題

用的環境是 .net core 3.1 不是這個版本的(主要是指之前的版本),處理方法不一樣,不用參考

問題描述  post參數 如果在函數的聲明了,再次讀取body的時候,就會引發異常,我分析是stream 不能被多次讀取,猜的是對的

解決方法,在 startup.cs   public void Configure  函數中 增加 

            app.Use((context, next) =>
            {
                context.Request.EnableBuffering();
                return next();
            });
            app.UseRouting();

再次讀取就好了,我用的讀取方式是 

        public static string GetRequestParameters2(this HttpContext context)
        {            
            Stream stream = context.Request.Body;
            byte[] buffer = new byte[context.Request.ContentLength.Value];
            stream.Position = 0L;
            stream.ReadAsync(buffer, 0, buffer.Length);
            string content = Encoding.UTF8.GetString(buffer);
            return content;
        }

當然,你的函數如果沒有參數,直接用我的方法讀取,如果是第一次讀取 buffer,也是能讀取到的

寫個破程序和破案一樣。。。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM