Octopus系列之UploadValues异步上载

不多说了直接上代码

        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";

            string uriString = "http://127.0.0.1/tools/Handler1.ashx";
            WebClient myWebClient = new WebClient();
            NameValueCollection myNameValueCollection = new NameValueCollection();
            myNameValueCollection.Add("Name", "Tom");
            myNameValueCollection.Add("Address", uriString);
            myNameValueCollection.Add("Age",  "12");

            //虽然是异步调用 但是还会阻止当前的响应,所以从效果上看,还是会阻塞,这不是我想要的方式
            //应该使用后台线程 去做这样的事情
            //这个和控制台展示的效果不一样
            myWebClient.UploadValuesCompleted += myWebClient_UploadValuesCompleted;
            myWebClient.UploadValuesAsync(new Uri(uriString), null, myNameValueCollection, context);

            //同步POST
            //byte[] responseArray = myWebClient.UploadValues(uriString, myNameValueCollection);
            //Decode and display the response.
            //Response.Write(Encoding.ASCII.GetString(responseArray));
            //context.Response.Write("Hello World");
        }

        void myWebClient_UploadValuesCompleted(object sender, UploadValuesCompletedEventArgs e)
        {
            Octopus.Common.CommonHelper.TraceLog(Encoding.ASCII.GetString(e.Result));
        }

        //接收
        context.Response.ContentType = "text/plain";
        System.Threading.Thread.Sleep(3000);
        context.Response.Write("Hello World," + context.Request.Form["Name"] + ","
                + context.Request.Form["Age"] + "," + context.Request.Form["Address"]);
时间: 2024-10-11 10:22:04

Octopus系列之UploadValues异步上载的相关文章

Tornado源码分析系列之一: 化异步为'同步'的Future和gen.coroutine

转自:http://blog.nathon.wang/2015/06/24/tornado-source-insight-01-gen/ 用Tornado也有一段时间,Tornado的文档还是比较匮乏的,但是幸好其代码短小精悍,很有可读性,遇到问题时总是习惯深入到其源码中.这对于提升自己的Python水平和对于网络及HTTP的协议的理解也很有帮助.本文是Tornado源码系列的第一篇文章,网上关于Tornado源码分析的文章也不少,大多是从Event loop入手,分析Event loop的工作

CDC不同模式在ODI体现系列之二 异步模式

CDC不同模式在ODI体现系列之二 异步模式 2 异步模式需要在数据库中做一些准备工作: 改数据为归档并启用logminer: SQL> shutdown immediate 数据库已经关闭. 已经卸载数据库. ORACLE 例程已经关闭. SQL> startup mount ORACLE 例程已经启动. Total System Global Area  599785472 bytes Fixed Size                  1288820 bytes Variable S

Octopus系列之开发中灵光点收集,先放到这里,后面会整理的

项目中引用的组件 1.System.Data.SQLite.dll 自行编译 SQLite-1.0.66.0-source 3.5的框架:F:\Code\开源项目\SQLite\1.0.66.0_x86\源码\SQLite-1.0.66.0-source\bin[目前已经更新了,不在使用这个了,这个有个bug]2.F:\Code\开源组件\LitJSON\0.9.03.NVelocity.dll 来自小泥鳅blog*****************************************

Octopus系列之SQLite3常用命令

导出脚本F:\B2CShop>sqlite3 B2CDB.db .dump > test.sql 导入脚本F:\B2CShop>sqlite3 B2CDB.db < B2C-SQLite.sql F:\B2CShop>sqlite3 B2CDB.db < F:\B2CShop\B2C-SQLite.sql 创建数据库sqlite3 Octopus.db < Octopus.sql 导入数据脚本sqlite3 Octopus.db < Octopus2.0_D

Octopus系列之各个页面调用示例

调用首页产品 可选参数如下 New = 1, Hot = 2, Best = 3, Special = 4, Featured = 5, Other = 6 #foreach($item in $oct.GetProductstList(${currency},6,$ptype.Best)) <dl class="indexlist"> <dt class="proimg"> <a href="${item.url}"

Handler详解系列(一)——Handler异步消息机制详解(附图)

MainActivity如下: package cc.cn; import android.os.Bundle; import android.os.Handler; import android.os.Looper; import android.os.Message; import android.util.Log; import android.app.Activity; /** * Demo描述: * Android异步消息机制分析(附图) * * ===================

并发系列64章(异步编程)第二章

前言 异步编程的概念我在第一章概要的时候,提及了.在此再次简略概要一次. 它采用future模式或者回调模式机制,以避免产生不必要的线程. 异步编程测试的标准 在第一个写这个的原因,是因为测试可能比开发重要.因为在开发一个项目的时候呢?有一个自动化高效精准测试,决定了上线是否稳定.因为程序出bug测试出来可以改,方案不行换方案,但是测试不行上线了.这时候面临的问题就比较大,因为这时候产生了数据. 比如说 app 一张表的设计不合理,在自动化测试中没有体现出来,那么你要更换表的时候就显得异常困难,

并发系列64章(异步编程二)第三章

前言 是在第二章基础上续写的,主要是完结第二章例子部分. 请看下面几个例子,感受一下. 报告进度 不管我们完任何app,每次更新的时候都能看到进度条. 而我们知道ui界面更新,一般来说是和更新程序异步的,但是更新程序又要通知ui进度. 代码: public class Program { static double percentComplete = 0; static void Main(string[] args) { doit(); Console.ReadKey(); } public

Octopus系列之重新规范了模板结构,大家快来看啊

模板结构我是这样来设计的:大家请看,下面四个关键字 frontend[前段]backend[后端]member[会员]widget[部件] 前段页面包括 _Frontend_header_1.html_Frontend_footer_1.html_Frontend_nav_1.html Frontend_Default.htmlFrontend_List.htmlFrontend_Detail.htmlFrontend_Search.html _Frontend_sidebar_1.html_F