Async处理http请求

何谓Async?

请参考 http://www.cnblogs.com/jesse2013/p/async-and-await.html。

通过一下例子,看是怎样异步处理http请求的。

    public class ServerCmdHandle : HttpTaskAsyncHandler //继承异步处理方法
    {

    private async Task<string> DoAsync(HttpContext context, Object reqStr)
        {
            string recvInfo = System.Web.HttpUtility.UrlDecode(System.Text.Encoding.UTF8.GetString(Encoding.UTF8.GetBytes(reqStr as string)));
            return await Task.Run(() =>
            {
                return Global.bus.ProcessBusiness(context, recvInfo);//实现异步处理的方法
            });
        }

        public override async System.Threading.Tasks.Task ProcessRequestAsync(HttpContext context)
        {
            try
            {
                string result = "";
                if (context.Request.RequestType.CompareTo("GET") == 0)
                {
                    result = await DoAsync(context, context.Request.QueryString["data"].ToString() as Object);
                }
                else if (context.Request.RequestType.CompareTo("POST") == 0)
                {
                    System.IO.Stream resStream = context.Request.GetBufferlessInputStream();
                    System.IO.StreamReader reader = new System.IO.StreamReader(resStream, Encoding.Default);
                    string resInfo = reader.ReadToEnd();
                    if (resInfo.Length > 0)
                    {
                        result = await DoAsync(context, resInfo as Object);//异步等待处理结果
                    }
                }
                else
                {
                    throw new Exception("user requset method error");
                }
                context.Response.ContentType = "text/plain";
                context.Response.Write(result);
            }
            catch (Exception ex)
            {
                ServiceLogger.LOG_INFO("func=> ProcessRequestAsync:" + ex.Message, 0);
            }

        }

    }
时间: 2024-10-09 16:43:02

Async处理http请求的相关文章

【WePY小程序框架实战四】-使用async&amp;await异步请求数据

[WePY小程序框架实战一]-创建项目 [WePY小程序框架实战二]-页面结构 [WePY小程序框架实战三]-组件传值 async await 是对promise的近一步优化,既解决了promise链式then的这种写法壁垒,又让异步请求更像同步,若对async await不太了解的同学可以直接参考阮一峰老师的文章async 函数的含义和用法,这里我们只关注怎么在小程序wepy架构中如何使用. 依赖库 import 'wepy-async-function' app.wpy中启用 export

ajax中的async设置问题

问题: 当项目启动登录后,google浏览器(F12)或fireFox等浏览器会出现如下警告: Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience.     jquery-1.8.0.min.js:2 For more help, check https://xhr.spec.whatwg.org/.

ios开发网络学习:一:NSURLConnection发送GET,POST请求

#import "ViewController.h" @interface ViewController ()<NSURLConnectionDataDelegate> /** 注释 */ @property (nonatomic, strong) NSMutableData *resultData; @end @implementation ViewController #pragma mark ---------------------- #pragma mark la

js源码 模仿 jquery的ajax的获取数据(get,post )的请求封装

function ajax(obj){ // 默认参数 var defaults = { type : 'get', data : {}, url : '#', dataType : 'text', async : true, success : function(data){console.log(data)} } // 处理形参,传递参数的时候就覆盖默认参数,不传递就使用默认参数 for(var key in obj){//把输入的参数与设置的默认数据进行覆盖更新 defaults[key]

JQuery ajax-向服务器发送请求的方法

如需将请求发送到服务器,我们使用 XMLHttpRequest 对象的 open() 和 send() 方法: xmlhttp.open("GET","ajax_info.txt",true);//打开文件 xmlhttp.send();// 发送数据 open(method,url,async): 规定请求的类型.URL 以及是否异步处理请求. method:请求的类型:GET 或 POST url:文件在服务器上的位置 async:true(异步)或 false

AJAX请求和跨域请求详解(原生JS、Jquery)

一.概述 AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术. AJAX = 异步 JavaScript 和 XML,是一种用于创建快速动态网页的技术.通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新.传统的网页(不使用 AJAX)如果需要更新内容,必需重载整个网页面. 本博客实验环境: python:2.7.11 web框架:tonado jquery:2.1.1 二.“伪”AJAX 由于

Ajax入门(一)从0开始到一次成功的GET请求

什么是服务器 网页浏览过程分析 一个完整的HTTP请求过程,通常有下面7个步骤 建立TCP连接 Web浏览器向Web服务器发送请求命令 Web浏览器发送请求头信息 Web服务器- 应答 Web服务器- 发送应答头信息 Web服务器- 向浏览器发送数据 Web服务器- 关闭TCP连接 如何配置自己的服务器程序(AMP) Ajax必须在服务器环境下才能正常使用 我使用的WampServer程序.(支持中文)官网连接.可能速度不行,不过科学上网,大家应该都会. 网上的使用教程:如何安装使用 XAMPP

HTTP/1.1标准请求方法和状态码

HTTP/1.1标准自从1999年制定以来至今仍然是一个应用广泛并且通行的标准 相关文档 RFC2616:Hypertext Transfer Protocol -- HTTP/1.1 在RFC6585中,状态码428.429.431.511加了进来 RFC2616制订了关于HTTP/1.1的一系列标准 下面我们来关注请求方法和状态码 在第九章中,请求方法包括GET.HEAD.POST.PUT.DELETE.TRACE.CONNECT一共七个,其中GET.POST在编程中用得最多 HEAD:只返

ajax跨域请求获取jsonp数据

<!DOCTYPE html><html><head><meta charset="UTF-8"><title>Insert title here</title><script src="jquery.js"></script><script type="text/javascript">function getIntface(){ //?