2010-03-04 3 views
3

나는 URL을 치고 해당 URL에서 반환 된 HTTP 상태 코드를 가져야하는 응용 프로그램에서 작업하고 있습니다. 현재이를 달성하기 위해 WININET 함수를 사용하고 있습니다. 이를 달성하는 코드 :C++ : URL에서 HTTP 상태 코드 받기

hOpen = InternetOpenA ("MYAPP", INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0); 035, INTERNET_FLAG_RELOAD, 0); HttpQueryInfoA (hFile, HTTP_QUERY_STATUS_CODE, (void *) 버퍼, & dwBufLen, NULL);

성능을 확인하기 위해 몇 가지 검사를했는데 평균적으로 평균 300 밀리 초가 걸리는 것을 볼 수 있습니다. 여러 번의 히트를 기록 할 것이므로 총 시간은 약 8-10 초가되며 전체 응용 프로그램 속도가 느려집니다.

MAC도 약 100 밀리 초 정도 (COCOA 사용)입니다.

이렇게 빨리 얻을 수있는 다른 API가 WIN에 있습니까? 사전에

감사합니다, 미트

+0

boost :: asio 라이브러리를 사용할 수 있습니다. 더 빠를 수도 있습니다. – Xorlev

+0

실제 URL 검색에 걸리는 시간을 확인하기 위해 패킷 스니핑을 수행 했습니까? 소요 시간은 URL에 따라 다릅니다. – Murray

+0

실제로 우리는 다른 라이브러리를 포함 할 수 없습니다. 그래서 표준 C++ 호출에 의존해야합니다 ... – eramitmodi

답변

1

WinHTTP에 다른 주요 Win32에서 HTTP API입니다. UI가없는 서버와 클라이언트를 위해 더 많이 설계되었으므로 더 빨라질 수 있습니다.

2

libcurl은 다른 옵션입니다. 실제로 플랫폼에 독립적입니다. 이 라이브러리로 좋아하지 않을 수도있는 점은 추가 DLL이 필요하다는 것입니다.

+0

libcurl의 '쉬운 인터페이스'는 간단하며 설명하는 모든 것을 지원합니다. http://curl.haxx.se/libcurl/c/libcurl-tutorial.html을보십시오. – jpyllman