程序片断1:
pHttpConnection = InternetSession.GetHttpConnection(strServer);
pHttpFile = pHttpConnection->OpenRequest(CHttpConnection::HTTP_VERB_GET, strFile);
try
{
pHttpFile->SendRequest();
}
catch (...)
{
...
}
程序片断2:
if(HINTERNET hInt = InternetOpen(NULL, INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0))
{
if (HINTERNET hConn = InternetConnect(hInt, strServer, 80, NULL, NULL, INTERNET_SERVICE_HTTP, 0, 0))
{
if (HINTERNET hReq = HttpOpenRequest(hConn, L"GET", strFile, NULL, NULL, NULL, 0, 0))
{
if (HttpSendRequest(hReq, NULL, 0, NULL, 0))
{
...
}
}
}
}
诡异的情况是片断1一直工作得很好(几年时间),这几天突然不正常工作了(仅仅本是本机工作不正常,其它机器和虚拟机都工作正常,本机上的虚拟机也工作正常),捕捉到的异常一直是连接不到服务器,通过调试,发现SendRequest根本没有调用connect函数,无奈之下用片断2测试就可以正常连接服务器,connect被正常调用,HttpSendRequest返回正确。
以上就是问题了,当然重装系统百分百能解决片断1不工作的情况,但是片断1就是调用了片断2中相关于的函数,而且片断1和片断2的请求头也是一模一样的,为啥片断1突然在本机就不工作了?百思不得其解,求助求助各位,求敲醒!!!
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)