-
Notifications
You must be signed in to change notification settings - Fork 3
/
database_store.js
144 lines (110 loc) · 5.72 KB
/
database_store.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
static function strVar1(var1:String)
{
return "\"" + var1.Replace('\\','\\\\').Replace('\"','\\\"').Replace ('\n','\\n').Replace('\r','\\r').Replace('\'','\\\'') + "\"";
}
static function OnBeforeResponse(oSession: Session)
{
if (m_Hide304s && oSession.responseCode == 304)
{
// I don't know this meaning ... so baidu it
// https://www.cnblogs.com/hushaojun/p/6944962.html
/**
ui-hide
Hide the session from the Session List.
The session will continue to run.
Breakpoints on hidden sessions are ignored.
Note: hiding a session will free up the memory that would otherwise be used to hold the session data in memory.
ui-color
The value of this flag determines the font color used to render this session in the Session List.
ui-backcolor
The value of this flag determines the background color used behind this session's entry in the Session List.
ui-bold
If present, this session's entry will be bolded in the Session List.
ui-italic
If present, this session's entry will be italicized in the Session List.
ui-strikeout
If present, this session's entry will be struck out in the Session List.
ui-customcolumn
The value of this flag is shown in the Fiddler Session List's "User-defined" column.
ui-comments
The Comment, if any, which the user set on this session.
**/
oSession["ui-hide"] = "true";
}
if
(
// from certain site like weixin.qq.com ...
(
oSession.RequestHeaders.AllValues("Host").Contains(".weixin.qq.com") ||
oSession.RequestHeaders.AllValues("Host").Contains(".growingio.com") ||
oSession.RequestHeaders.AllValues("Host").Contains(".huatuo.qq.com") ||
oSession.RequestHeaders.AllValues("Host").Contains(".aihuishou.com") ||
oSession.RequestHeaders.AllValues("Host").Contains(".huishoubao.com")
) &&
// and content-type is text/html or application/json
(
oSession.ResponseHeaders.AllValues("Content-Type").Contains("application/json") ||
(
oSession.ResponseHeaders.AllValues("Content-Type").Contains("text/html") &&
// and not htm ,png,ico and jpg . (some developers are so chedan ,they can give an ico for json)
(
(! oSession.url.Contains(".htm")) &&
(! oSession.url.Contains(".png")) &&
(! oSession.url.Contains(".ico")) &&
(! oSession.url.Contains(".jpg"))
)&&
(
// even blank should be store ,otherwise should be json structure
(oSession.GetResponseBodyAsString()+"{ ").Substring(0,3).Contains ("{")
)
)
)
)
{
// earse the confusion codes...
oSession.utilDecodeResponse();
oSession["ui-backcolor"] = "yellow";
// write access t_call_record
var sql = "";
try
{
var con =new ActiveXObject("ADODB.Connection");
//con.Provider="Microsoft.ACE.OLEDB.18.0";
var rs=new ActiveXObject("ADODB.Recordset");
/**
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Y:/TEST/fiddler_web_service_analysis.accdb;Persist Security Info=False;
**/
//var access_db_path = "d:/fiddler_web_service_analysis.accdb" ;
//con.ConnectionString="Data Source="+access_db_path;
//ODBC DSN name ,config by windows odbc
con.open("DSN=db_hsb_vs_ahs;") ;
//FiddlerObject.alert(1);
sql = "insert into t_call_record (call_timestamp,request_send_timestamp,response_recv_timestamp,sitename,url,request,response,spend_second,content_type,content_length) values(" +
strVar1(oSession.Timers.FiddlerBeginRequest) + "," +
strVar1(oSession.Timers.ClientDoneRequest) + "," +
strVar1(oSession.Timers.ServerDoneResponse) + "," +
strVar1(oSession.RequestHeaders.AllValues("Host")) + "," +
strVar1(oSession.url.Substring (0,whindex)) + "," +
strVar1(oSession.RequestHeaders.ToString ()+oSession.GetRequestBodyAsString()) + "," +
strVar1(oSession.ResponseHeaders.ToString ()+oSession.GetResponseBodyAsString()) + "," +
etimes*1000 + "," +
strVar1(oSession.ResponseHeaders.AllValues("Content-Type")) +"," +
oSession.ResponseHeaders.AllValues("Content-Length")+0
+");";
//FiddlerObject.alert(sql);
rs.open(sql,con);
oSession["ui-color"] = "red";
//rs.close();
// rs=NULL;
con.close();
// con = NULL;
}
catch(exp)
{
var txt="Error description: " + exp.message + "\n\n" + sql;
FiddlerObject.log(txt);
oSession["ui-strikeout"] = "true";
}
return;
}
}