コード例 #1
0
VOID CommonGetCookie(LPCSTR pchUrl,CHAR *pchCookieData,int nCookieDataLen,BOOL bFromJs = FALSE)
{

	CUrlParser urlParser;
	urlParser.ParseUrl(pchUrl);

	CStringA strCheckDomain;
	strCheckDomain = urlParser.GetDomain();
	strCheckDomain = "."+strCheckDomain;

 	CStringA strSqlCmd;


	strSqlCmd.Format("select cookiename,cookievalue from cookiedata where \"%s\" like \"%%\"||domain and \"%s\" like path||\"%%\" %s %s "
		,strCheckDomain
		,urlParser.GetPath()
		,bFromJs?"and httponly=0":""
		,urlParser.GetProtocol().CompareNoCase("https") == 0?"and secure=1":"and secure=0"
		);

	CStringA strCookieResult;
	char *pcherrmsg = NULL;

	DWORD dwTickStart = GetTickCount();

	Locker.rlock();
 	ASSERT(sqlite3_exec(g_pDB,strSqlCmd,query_cookie_callback,&strCookieResult,&pcherrmsg) == 0);
	Locker.unlock();

	DWORD dwUseTime = GetTickCount() - dwTickStart;

	CStringA strMsgout;
	strMsgout.Format("查询Cookie 用时:%d\r\n",dwUseTime);
	OutputDebugStringA(strMsgout);

	strcpy_s(pchCookieData,nCookieDataLen,strCookieResult.GetBuffer());
	

}