C ++: получение кода состояния HTTP из URL - PullRequest
3 голосов
/ 04 марта 2010

Я работаю над приложением, в котором мне нужно нажать URL-адрес и получить код состояния HTTP, возвращенный с этого URL-адреса. В настоящее время я использую функции WININET для достижения этой цели. Код для достижения этого:

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, (недействительный *) буфер, и dwBufLen, NULL);

Я сделал несколько проверок, чтобы увидеть производительность, и я вижу, что в среднем попадание занимает около 300 миллисекунд. Поскольку я буду делать несколько попаданий, общее время составит около 8-10 секунд, что замедляет работу всего приложения.

Также то же самое достигается на MAC около 100 миллисекунд или около того (я использую COCOA).

Так есть ли на WIN другие API, которые я могу использовать, чтобы получить это быстрее?

Спасибо заранее, Amit

Ответы [ 2 ]

2 голосов
/ 04 марта 2010

libcurl - еще один вариант. Это на самом деле не зависит от платформы. В этой библиотеке вам может не понравиться то, что вам потребуются дополнительные библиотеки DLL.

1 голос
/ 04 марта 2010

WinHTTP - это другой основной Win32 HTTP API.Он предназначен больше для серверов и клиентов без пользовательского интерфейса и, следовательно, может быть быстрее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...