个人笔记,记录Nancy异步用法

基类,所有请求都将首先执行该类,并执行Before事件
namespace CxyAdvert.Base
{
public class BaseNancyModel : Nancy.NancyModule
{
public BaseNancyModel()
{
Get["/"] = param =>
{
return "ADVERT SYSTEM";
};
}
public BaseNancyModel(string path)
: base(path)
{
Before += async (context, token) =>
{
return await VerifyAuth(context);
}; //After += async (context, token) =>
//{
// await VerifyAuth(context);
//};
}      /// <summary>
/// Before执行的函数,返回null将继续执行路由指定接口,返回Response将结束并返回
/// </summary>
/// <param name="nancyContext"></param>
/// <returns></returns>
private async Task<Response> VerifyAuth(Nancy.NancyContext nancyContext)
{
try
{
var httpMethod = nancyContext.Request.Method;
if (httpMethod.ToUpper() == "POST")
{
var requestParms = HttpHelper.GetPostValue(nancyContext.Request.Body);
if (requestParms == "")
{
return Response.AsJson(new ResultMsg() { code = -, errormsg = "参数值不能为空" });
}
else
{ }
}
return null;
}
catch (Exception error)
{
Logger.Error("BaseNancyModel ERROR:" + error);
return Response.AsJson(new ResultMsg() { code = -, errormsg = error.Message });
}
}      public object GetEncryptValue(object msg)
{
var strJson = JsonConvert.SerializeObject(msg, StringFormat.jsonSerializerSettings);
return strJson ;
}
}
}

接口类,所有接口类继承基类BaseNancyModel,GetEncryptValue函数实现于基类BaseNancyModel中
namespace CxyAdvert
{
public class AdvertSericeApi : BaseNancyModel
{
public AdvertSericeApi() :
base("/cxy/api/advert/")
{
IAdvertSerice service = new AdvertSerice(); Post["getshowadverts", true] = async (param, token) =>
{
return GetEncryptValue(await service.GetShowAdverts(BaseInputParam, ThridUser));
}; Post["getadverts", true] = async (param, token) =>
{
return GetEncryptValue(await service.GetAdverts(BaseInputParam, ThridUser));
};
}
}
}


Nancy异步用法的更多相关文章

  1. 进程池的同步与异步用法Pool

    进程池的同步,如下程序: from multiprocessing import Pool import time import os def func(n): print('start 进程 %s' ...

  2. c语言libcurl库的异步用法

    multi接口的使用会比easy 接口稍微复杂点,毕竟multi接口是依赖easy接口的,首先粗略的讲下其使用流程:curl_multi _init初始化一个multi curl对象,为了同时进行多个 ...

  3. curl_multi_*模拟多线程异步用法

    测试环境: PHP版本:php7.0.10 mysql版本:5.7.14 测试用例:循环插入两千行数据到数据库 public function test_syn($pc){ // $pc = trim ...

  4. 选择HttpHandler还是HttpModule?

    阅读目录 开始 理解ASP.NET管线 理解HttpApplication 理解HttpHandler 理解HttpModule 三大对象的总结 案例演示 如何选择? 最近收到几个疑问:HttpHan ...

  5. Asp.Net Core微服务再体验

    ASP.Net Core的基本配置 .在VS中调试的时候有很多修改Web应用运行端口的方法.但是在开发.调试微服务应用的时候可能需要同时在不同端口上开启多个服务器的实例,因此下面主要看看如何通过命令行 ...

  6. (5)学习笔记 ) ASP.NET CORE微服务 Micro-Service ---- 熔断降级(Polly)

    一. 什么是熔断降级 熔断就是“保险丝”.当出现某些状况时,切断服务,从而防止应用程序不断地尝试执行可能会失败的操作给系统造成“雪崩”,或者大量的超时等待导致系统卡死. 降级的目的是当某个服务提供者发 ...

  7. (5).NET CORE微服务 Micro-Service ---- 熔断降级(Polly)

    一. 什么是熔断降级 熔断就是“保险丝”.当出现某些状况时,切断服务,从而防止应用程序不断地尝试执行可能会失败的操作给系统造成“雪崩”,或者大量的超时等待导致系统卡死. 降级的目的是当某个服务提供者发 ...

  8. 前端AMD、CMD和commonJs-前端知识

    前端AMD和CMD是在模块化的基础上产生并且得到大幅度的引用的. AMD 即Asynchronous Module Definition(点击链接可以查看AMD面试题),中文名是异步模块定义的意思.它 ...

  9. HttpHandler,HttpApplication, HttpModule

    选择HttpHandler还是HttpModule? HttpHandler和HttpModule之间有什么差别 之所以有这个疑问,是因为在这二类对象中都可以访问Request, Response对象 ...

随机推荐

  1. MySql数据库基础笔记(一)

    一.表与库的概念 数据库管理数据,它是以什么样的形式组成的? 生活中的表---->表 table多行多列,传统的数据库都是这样的;声明了表头,一个表创建好了,剩下的就是往表中添加数据 多张表放在 ...

  2. 3.1Python数据处理篇之Numpy系列(一)---ndarray对象的属性与numpy的数据类型

    目录 目录 (一)简单的数组创建 1.numpy的介绍: 2.numpy的数组对象ndarray: 3.np.array(list/tuple)创建数组: (二)ndarray对象的属性 1.五个常用 ...

  3. 12个HTML和CSS必须知道的重点难点问题

    这12个问题,基本上就是HTML和CSS基础中的重点个难点了,也是必须要弄清楚的基本问题,其中定位的绝对定位和相对定位到底相对什么定位?这个还是容易被忽视的,浮动也是一个大坑,有很多细节.这12个知识 ...

  4. Properties集合_修改配置信息

    集合中的数据来自于一个文件  注意:必须要保证该文件中的数据是键值对.  需要使用到读取流 使用load()方法读取已有文件中的数据,存储到Properties集合中 public class Pro ...

  5. win10搭建ftp服务器的操作方法【图文教程】

    我们知道FTP是TCP/IP网络上两台计算机传送文件的协议,使得主机间可以共享文件.对于win10版本的ftp服务器搭建方法可能有部分用户还不是很清楚,下面这篇文章就是关于win10搭建ftp服务器的 ...

  6. 基于Redis实现一个安全可靠的消息队列

    http://doc.redisfans.com/list/rpoplpush.html

  7. dns与wins的区别

    将主机名字解析称为ip地址有四种办法: dns.winds.hosts文件.lmhosts文件 dns和hosts是很多系统cout采用的一个名称解析的方法,wins和lmhosts是微软的操作系统此 ...

  8. 使用ElasticSearch实现搜索时即时提示与全文搜索功能

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. Hue添加Spark notebook

    参考自https://blogs.msdn.microsoft.com/pliu/2016/06/18/run-hue-spark-notebook-on-cloudera/ 说明 使用Clouder ...

  10. (四) 天猫精灵接入Home Assistant-ESP-WIFI模块通过mqtt协议接入HASS

    总过程 1 ESP8266上电后,初始化 连接MQTT服务器 发布自身配置信息----hass自动发现该设备 订阅hass的命令话题---接收命令 发布hass的状态话题---返回自身状态 2 ESP ...