@@ -19,10 +19,11 @@ var (
19
19
)
20
20
21
21
// 检查器的设计:解耦、规范、统一,各类专注实现自己
22
- // 1、允许未响应header、body、js、css等构建不同的检查器
23
- // 2、每个检查器都有缓存
24
- // 3、避免重复检查
25
- // 4、具有自动释放缓存的机制,程序退出时自动消费(内存缓存)
22
+ //
23
+ // 1、允许未响应header、body、js、css等构建不同的检查器
24
+ // 2、每个检查器都有缓存
25
+ // 3、避免重复检查
26
+ // 4、具有自动释放缓存的机制,程序退出时自动消费(内存缓存)
26
27
type CheckerTools struct {
27
28
Name string `json:"name"` // RespHeader,RespBody,RespJs,RespCss,RespTitle,ReqHeader
28
29
checkFunc []func (* CheckerTools , ... interface {}) `json:"check_func"` // 注册的检查器
@@ -78,8 +79,10 @@ func (r *CheckerTools) GetBodyStr(a ...interface{}) string {
78
79
// 检查
79
80
func (r * CheckerTools ) Check (parm ... interface {}) {
80
81
for _ , f := range r .checkFunc {
81
- log .Printf ("Check %+v\n " , parm )
82
- f (r , parm ... )
82
+ if nil != f {
83
+ log .Printf ("Check %+v\n " , parm )
84
+ f (r , parm ... )
85
+ }
83
86
}
84
87
}
85
88
@@ -112,12 +115,15 @@ func CheckRespHeader(parm ...interface{}) {
112
115
}
113
116
114
117
// 检查 response 对象
115
- // 1、包括头的检查
116
- // 2、包括body的检查
118
+ //
119
+ // 1、包括头的检查
120
+ // 2、包括body的检查
117
121
func CheckResp (szU string , resp ... * http.Response ) {
118
- for _ , r := range resp {
119
- CheckRespHeader (& r .Header , szU )
120
- GetInstance (RespBody ).Check (& r , szU )
122
+ if nil != resp && 0 < len (resp ) {
123
+ for _ , r := range resp {
124
+ CheckRespHeader (& r .Header , szU )
125
+ GetInstance (RespBody ).Check (& r , szU )
126
+ }
121
127
}
122
128
}
123
129
0 commit comments