代码获取特定虚拟路径编译页(ashx)的一个实例并获取数据

代码获取特定虚拟路径编译页(ashx)的一个实例并获取数据

            //获得数据 - jsonResponse
            string jsonResponse;

            JObject jRequest = JObject.Parse(Encoding.UTF8.GetString(Convert.FromBase64String(context.Request.Params["request"])));
            string url = (string)jRequest["url"];
            url = "~/" + url;
            JToken jToken;
            using (StringWriter sw = new StringWriter())
            {
                HtmlTextWriter writer = new HtmlTextWriter(sw);
                HttpResponse response = new HttpResponse(writer);

                List<string> queryParams = new List<string>();
                queryParams.Add("DateFormat=text");
                foreach (KeyValuePair<string, JToken> property in (jRequest["params"] as JObject))
                    queryParams.Add(property.Key + "=" + HttpUtility.UrlEncode((string)property.Value, Encoding.Default));

                HttpRequest callrequest = new HttpRequest(null, context.Request.Url.ToString(), String.Join("&", queryParams.ToArray()));
                HttpContext callcontext = new HttpContext(callrequest, response);

                IHttpHandler handler = PageParser.GetCompiledPageInstance(url, context.Server.MapPath(url), context);
                handler.ProcessRequest(callcontext);

                jsonResponse = sw.ToString();

                jToken = JToken.Parse(jsonResponse);
                if (jToken is JObject)
                {
                    JObject jObject = jToken as JObject;
                    if (jObject["success"] != null && jObject["success"].Type == JTokenType.Boolean && (bool)jObject["success"] == false)
                        throw new Exception((string)jObject["errorMessage"]);
                }
            }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值