葡京网上娱乐场FiddlerCoreAPI开发(一)源码分析

先期创造的库个表 如下 : 下面示例用到说明结构

1.前言

前方一段时间想用fiddlercore截取本地HTTPS的流量做片剖析,按照样例代码的注释学习了一下,没动手懂怎么落实,后来同时当网上查看了头资料,对HTTPS的拍卖提及很少,都并未解决自身之题材,主要是HTTPS证书的题目,索性自己研究了一晃,终于解决了问题。我会在下篇文章被享受下自家之思绪,本篇文章先简单分析下fiddlercore自带样例的代码,帮助刚接触fiddlercore的人很快入门,如果有说的反常的地方,欢迎批评指正。

ALTER COLUMN name TYPE varchar(100);

2.源码分析

第一从官网下载FiddlerCoreAPI
https://www.telerik.com/purchase/fiddlercore

下载下来是一个安装文件,解压后发出demo和FiddlerCoreAPI库,打开样例代码工程,开始分析。

自从主函数起。

List<Fiddler.Session> oAllSessions = new List<Fiddler.Session>();

概念了一个fiddler的Session类的List,里面存放的凡客户端和劳动端的音讯。

Fiddler.FiddlerApplication.SetAppDisplayName("FiddlerCoreDemoApp");

命名自己的应用程序。

Fiddler.FiddlerApplication.OnNotification += delegate(object sender, NotificationEventArgs oNEA) { Console.WriteLine("** NotifyUser: " + oNEA.NotifyString); };
Fiddler.FiddlerApplication.Log.OnLogString += delegate(object sender, LogEventArgs oLEA) { Console.WriteLine("** LogString: " + oLEA.LogString); };

当即简单句子,第一句子绑定了用户通报事件的函数,具体什么时触发没仔细研究,第二句绑定了FiddlerApplication.Log触发的事件(FiddlerCore自己之日记系统),后面打印内容还见面为此到,总的即点儿句就是拿内容打印在控制台上。

Fiddler.FiddlerApplication.BeforeRequest += delegate(Fiddler.Session oS)
{
    // Console.WriteLine("Before request for:\t" + oS.fullUrl);
    oS.bBufferResponse = false;
    Monitor.Enter(oAllSessions);
    oAllSessions.Add(oS);
    Monitor.Exit(oAllSessions);

    if ((oS.oRequest.pipeClient.LocalPort == iSecureEndpointPort) && (oS.hostname == sSecureEndpointHostname))
    {
        oS.utilCreateResponseAndBypassServer();
        oS.oResponse.headers.SetStatus(200, "Ok");
        oS.oResponse["Content-Type"] = "text/html; charset=UTF-8";
        oS.oResponse["Cache-Control"] = "private, max-age=0";
        oS.utilSetResponseBody("<html><body>Request for httpS://" + sSecureEndpointHostname + ":" + iSecureEndpointPort.ToString() + " received. Your request was:<br /><plaintext>" + oS.oRequest.headers.ToString());
    }
};

BeforeRequest,顾名思义,就是当客户端发送请求后拦截之,在斯函数中好抱甚至修改要的内容。

oS.fullUrl也求的URL。

bBufferResponse这个特性,要设置成true才可以改服务器响应的内容。

连着下的if判断,是一个例,如果你拜https://localhost:7777,他会拦截你的请求,并构造响应报文返回给你,服务端不会收到该请求。

Fiddler.FiddlerApplication.Startup(iPort, oFCSF);

展FiddlerCore在指定端口的监听。

oSecureEndpoint = FiddlerApplication.CreateProxyEndpoint(iSecureEndpointPort, true, sSecureEndpointHostname);

建在指定端口的HTTPS的监听,这个函数下篇文章被尚见面说到。

至此,这个样例的要害代码就分析了了,它实现了简便的http请求截获和响应替换,剩余的代码都是头与用户之并行,这里不再赘述。

例子:

3.注意

前代码执行完后,一定要调用Shutdown()函数关闭FiddlerCore应用,不然会招浏览器还是经过Fiddler代理,上无了网。

Fiddler.FiddlerApplication.Shutdown();

每当关系管理器中可以看FiddlerCore安装了团结之关系。

葡京网上娱乐场 1

读样例代码的注释很有拉,还有FiddlerCore的扶持文档,里面各个函数的效益说之雅详细。

 alter table 表名 drop constraint 约束名–删除约束

5. 外键约束

(1)ADD方式:用于增加新列和完整性约束,列的定义方式以及CREARE
TABLE语句子被之列定义方式同样,其语法格式:

 LAST_UPDATED_BY    NVARCHAR(15),

 

ALTER TABLE foo

为主键实现了实体的完整性,外键实现了援的完整性,应用完整性规定,所引用的数据要是!其实就是单援。

alter table emp add constraint jfkdsj foreign key (did) references dept
(id)

【格式】alter table 表格名称
add constraint 约束名称 增加的自律类型 (列名)

【格式】alter table 表名称 add
constraint 约束名称 增加的约类型 (列名)

go

翻阅了瞬间网上关于alter
table添加表约束的资料,学习下,然后供自己事后用。

章:(删除表中的notes列)

· 加一个栏位: ADD “栏位 1” “栏位 1 资料种类”

alter table Teacher add constraint CK_1 check (TeaAge>0)–范围约

  alter table Teacher add primary key (TeaId)–主键

ALTER TABLE <表名> ADD
<列定义>|<完整性约束>。由于用是道吃加进的新列自动填写充NULL值,所以无克啊增的新列指定NOT
NULL约束。

· 改变栏位名称: CHANGE “原本栏位名” “新栏位名” “新栏位名资料种类”

(3)CHANGE方式,用于修改某些列,其语法格式:

Alter table 表名 add constraint 约束 字 约束类型(列名)

   分为零星种艺术,一栽是当开立约束 并同时给所开创约定义一个名字
 这样好重复开展操作,比如去时要用到

ALTER COLUMN address TYPE varchar(80),

ALTER TABLE distributors RENAME COLUMN address TO city;

规章: 分别给 Teacher表中上加 主键 唯一 和限制约

ALTER TABLE distributors DROP CONSTRAINT zipchk;

TeaAge  int ,

注释:某些数据库系统无同意这种当数据库表中删除列的方
(DROP COLUMN <列名>)。

动用一个 USING 子句, 把一个饱含
UNIX 时间戳的 integer 字段转化成 timestamp with
time zone:

 

从今一个字段里去一个非空约束:

条例:(删除Teacher表中的约)

· 删去一个栏位: DROP “栏位 1”

(USER_ID INT IDENTITY(1,1) NOT NULL,

再度改现存表的名:

 

ALTER TABLE distributors DROP COLUMN address RESTRICT;

USING

alter table emp add constraint qwe unique(ename)

ALTER TABLE [表名] CHANGE <原列名> TO
<新列名><新列的数据类型>

 

alter table Teacher add constraint DE_1 default ‘123’ for TeaAddress –默认约束

足为此底的主意

一个表名称让dept 里面有2列数额
一排列是ID一排是ENAME

· 改变栏位的资料种类: MODIFY “栏位 1” “新资料种类”

ALTER TABLE distributors ADD CONSTRAINT dist_id_zipcode_key UNIQUE
(dist_id, zipcode);

【格式】alter table 表名 add
constraint 约束名称 约束类型(列名)

于一个阐明增加一个检查约:

3.窜某平排被的数据类型语法

1. 主键约束

将表动到另外一个表空间:

ALTER TABLE [表名] MODIFY [列名] [数据类型]

create table Teacher

意很粗略,就是为这个列的数据默认为一定之多少

(2)DROP方式:用于去指定的完整性约束原则,或删除指定的排列,其语法格式为:

alter table Teacher add default ‘123’ for TeaAddress –默认约束

二. Alter table 用法
 针对表结构进行改动,比如补充加列删除列等等…

–删除约束 –先查出约束名 EXEC sys.sp_helpconstraint @objname =
N’bulkinserttest’ –表名 ALTER TABLE dbo.bulkinserttest DROP CONSTRAINT
ck_bulkinsert

ALTER COLUMN foo_timestamp TYPE timestamp with time zone

alter table Teacher alter column notes int

TeaId int not null ,

);

alter table emp add constraint ppp primary key (id)

4. 默认约束

Alter
table,网络程序及编程中所用的术语。通过变更、添加、除去列和束缚,或者经启用或剥夺约束和触发器来还改表的概念。

对现存字段改名:

望表中加进一个 varchar 列:

ALTER TABLE distributors ADD address varchar(30);

TeaName varchar(20) not null,

事例:emp表中的gongzi列默认为10000

ALTER TABLE<表名> DROP [<完整性约束名>]

 USER_NAME NVARCHAR(40) NOT NULL,

ALTER TABLE distributors

(

2.勾约束: 语法

如此这般的自律就是于列的数额多的莫重的约类型

假定本着一个列加主键约束的话,这排就得要满足的规格虽是非空。因为主键约束:就是针对一个排列进行了封锁,约束为(非空、不更)。

(4)MODIFY方式,用于修改某些列的数据类型,其语法格式:

让表增加一个(多字段)唯一约束:

  alter table Teacher drop constraint PK_1 –删除主键约束

 LAST_UPDATED_DATE    DATETIME,

事例:给ename列加个unique,让ename列的数目未还

/*ALTER TABLE 删除字段 */

通向表中增加一个外键约束:

【格式】alter table 表名 add
constraint 约束名称 约束类型 (列名) references 被引述的表名称 (列名)

加加表约束

才供自己用。。。

规章:(将Teacher
表中的notes列更改为int类型)

例子:

did:表示请的出品号

第二种:

总结alter table ### add
constraint ## 使用方法

timestamp with time zone ‘epoch’ + foo_timestamp * interval ‘1
second’;

 CREATE TABLE TABLE_USER

 

 

 Alter table 表名 ADD 列名  数据类型

某某平等列(sex)取值只能为“男”和“女”的约表达式:

叫一个表增加一个自行命名的主键约束,要留意的是一个发明只能有一个主键:

alter table Teacher drop constraint CK_1 –删除范围约

ename:表示活之号

  Alter table 表名 drop column 列名

规章: (给Teacher 表中补充加同列 notes
数据类型为varchar(200))

CONSTRAINT USER_DEPARTMENT_FK FOREIGN KEY(DEPARTMENT_ID) REFERENCES
TABLE_DEPARTMENT(DEPARTMENT_ID) ,CONSTRAINT USER_COMPANY_FK FOREIGN
KEY(COMPANY_ID) REFERENCES TABLE_COMPANY(COMPANY_ID)  ;

CONSTRAINT USER_PK PRIMARY KEY (USER_ID)

ALTER TABLE 表的名号 ADD CONSTRAINT 约束之称号 CHECK (sex in
(‘男’,’女’))

 

alter table Teacher drop column notes

–外键约束,这里虽不一一举例了,语法如下

2.刨除表中的列 语法

第一种:  

ALTER TABLE TABLE_USER ADD 

   1.添加列 语法

ALTER TABLE<表名> DROP COLUMN <列名>

以此来接触难知晓了,外键其实就是援

改变方式:

 

 

)–为了还直观的观效果 这里虽先不添加约束

ALTER TABLE distributors ALTER COLUMN street SET NOT NULL;

ALTER TABLE distributors ADD CONSTRAINT zipchk CHECK
(char_length(zipcode) = 5);

【格式】alter table 表名称 add
constraint 约束名称 约束类型 默认值 for 列名

create database Text_DB

如若于emp表中的did列去引用dept表中的id

纵使被一样排的数量进行了限定

ALTER TABLE distributors ALTER COLUMN street DROP NOT NULL;

/* 创建表 及设置 主键 */

alter table 表名 add foreign key(列名) references 主表(列名)–外键

ALTER TABLE distributors ADD PRIMARY KEY (dist_id);

 DEPARTMENT_ID INT NOT NULL,COMPANY_ID INT NOT NULL,TEMP_COL
NVARCHAR(10);

 

alter table Teacher add check (TeaAge>0)–范围约

alter table Teacher drop constraint DE_1 –删除默认约束

/*ALTER TABLE 增加多个字段 */

数据库SQL语言的修改报告句,可以据此来改基本表,其相似代表格式为:

一.Alter
重要意图对是给已经创造的说明展开添加和改删除约束 的操作

alter table emp add constraint jfsd default 10000 for gongzi

1.被就创造的表添加约束

alter table Teacher add unique(TeaName)–唯一

—–添加律(命名)———–

  Alter table 表名 add 约束(列名)

事例:年龄列的多寡还设大于20,表名(emp)
列名(age)

ALTER TABLE<表名>[改变方式]

 

ALTER TABLE distributors SET TABLESPACE fasttablespace;

 

use Text_DB

在一个操作中修改两只现有字段的路:

ALTER TABLE TABLE_USER ADD 

 

事例:要针对性一个列加主键,列名为id,表名为emp

alter table emp add constraint xxx check(age>20)

Alter table 表名 alter column 列名 数据类型

 

被一个字段增加一个非空约束:

 

 

 

2. check约束

 

 

3. unique约束

例:

alter table Teacher drop constraint UN_1 –删除唯一约束

去除一个表和它的所有子表的自我批评约:

首先看下alter
table的概念(百度百科):

自从表中删除一个字段:

go

鉴于臻得以视,修改基本表提供如下四栽修改章程:

TeaAddress  varchar(50)

ALTER TABLE distributors ADD CONSTRAINT distfk FOREIGN KEY (address)
REFERENCES addresses(address) MATCH FULL;

ALTER TABLE distributors RENAME TO suppliers;

ALTER TABLE ADD增加多只字段外键约束

alter table 表名 add constraint 约束名  foreign key(关联字段) references 主表(关联字段)

id:表示用户号

   另一样栽艺术是直创造约束 不命名的,但是再次操作时是无便利的

ALTER TABLE TABLE_USER DROP COLUMN TEMP_COL;

 

alter table Teacher add constraint PK_1 primary key (TeaId)–主键约束

 

/*ALTER TABLE 增加多独外键 */

id:表示活之数码

alter table Teacher add constraint UN_1 unique(TeaName)–唯一约束

此外一个表名称是emp
里面有2列数,一排是ID 一列是DID

alter table Teacher add notes varchar(200)