激情欧美日韩一区二区|国产18在线播放|黄的日本免费大片|国产色在线 | 亚洲|青青操夜夜操

關(guān)于Request Payload 以及 后端如何通過C#接收其內(nèi)容

歡歡歡歡 發(fā)表于 2019-4-23 14:58

當(dāng)發(fā)起POST請求時,參數(shù)都放在HTTP的報文BODY里,可以像query參數(shù)的格式(k1=v1&k2=v2&k3=v3),也可以用multipart格式(multipart/form-data;boundary=--xxxxxxx),還有一種JSON格式,即Request Payload格式。

參考文檔:摸著里

知道了它的含義,那C#如何獲取數(shù)據(jù)呢

做了個小實驗發(fā)現(xiàn):

在一般處理程序(.ashx)中,直接使用如下代碼即可獲得數(shù)據(jù):

using (var reader = new System.IO.StreamReader(context.Request.InputStream))

 {

        string data = reader.ReadToEnd();

}

但是在MVC中,使用上述方法卻無法獲取數(shù)據(jù),應(yīng)該是被封裝后,丟失了!!在MVC中使用如下方法可以搞定:

 var bytes = new byte[HttpContext.Request.InputStream.Length];

HttpContext.Request.InputStream.Position = 0;

HttpContext.Request.InputStream.Read(bytes, 0, bytes.Length);

string data = System.Text.Encoding.UTF8.GetString(bytes);

參考文檔:摸這里