C++:从URL获取HTTP状态代码
问题描述:
我正在研究一个应用程序,其中 - 我必须打一个URL并获取从该URL返回的HTTP状态代码。目前我正在使用WININET函数来实现这一点。实现此目的的代码:C++:从URL获取HTTP状态代码
hOpen = InternetOpenA(“MYAPP”,INTERNET_OPEN_TYPE_DIRECT,NULL,NULL,0); hFile = InternetOpenUrlA(hOpen,url.c_str(),NULL,0,INTERNET_FLAG_RELOAD,0); HttpQueryInfoA(hFile,HTTP_QUERY_STATUS_CODE,(void *)buffer,& dwBufLen,NULL);
我做了一些检查以查看性能,我可以看到平均一次命中需要大约300毫秒。由于我将拍摄多首歌曲,所以总时间约为8-10秒,这会减慢整个应用程序的速度。
同样在MAC上也实现了约100毫秒左右(我正在使用COCOA)。
那么WIN上有没有其他的API可以用来让它更快?
由于提前, 阿米特
答
WinHTTP的是其他主要的Win32 HTTP API。它为没有UI的服务器和客户端设计更多,因此可能会更快。
你可以使用boost :: asio库。它可能会更快。 – Xorlev 2010-03-04 05:42:13
你是否做过任何包嗅探,看看实际的URL检索需要多长时间。所用的时间取决于URL。 – Murray 2010-03-04 05:48:51
实际上我们不能包括任何其他库..所以我必须依靠标准的C++调用... – eramitmodi 2010-03-04 08:47:59