C# 使用InputStream接收 解析表单参数

最近对接微信支付,需要给微信提供一个回调接口。   

支付完成后微信会访问这个回调接口传递参数,可根据参数来判断是否支付成功;

 

一般情况下我们写接口,接受参数都是Request[""] ,Request.Form[""],或者直接一个对象放在FormBody里面吧。

微信请求接口将参数sign了,所有我们可以使用数据流来读取传递的主体参数,

代码如下: 

            Stream s = Request.InputStream;
            int count = 0;
            byte[] buffer = new byte[1024];
            StringBuilder builder = new StringBuilder();

            while ((count = s.Read(buffer, 0, 1024)) > 0)
            {
                builder.Append(Encoding.UTF8.GetString(buffer, 0, count));
            }
            s.Flush();
            s.Close();
            s.Dispose();
            string queryData = HttpUtility.UrlDecode(builder.ToString());

或者

            string queryData = string.Empty;
            using (StreamReader sr = new StreamReader(Request.InputStream))
            {
                queryData = sr.ReadLine();
            }
            queryData = HttpUtility.UrlDecode(queryData);

读取后,再对字符串进行解析,操作。  

 

posted on 2020-06-12 14:30  阿里正正  阅读(1258)  评论(0编辑  收藏  举报

导航