![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
контроль (учет) трафика WinInet [D7, WinXP]
Dmitriy © (2010-05-19 10:50:00)Здравствуйте уважаемые мастера!
Есть необходимость в вашей помощи! Встал вопрос: а можно ли как-то учитывать трафик во время отправки запроса на сервер и получения от него ответа?
Задаю такой вопрос вот почему: для отправки на сервер использую функцию HttpSendRequest. Так вот эта функция посылает запрос и видимо получет ответ сервера, т.к. после ее выплнения можно прочитать заголовки, а сколько трафика истрачено неизвестно.
Сергей М. (2010-05-19 15:24:00) [1]
> Dmitriy
WinInet не даст актуальных данных о трафике, особенно если дело касается биллинга, ибо
- доступны данные только о прикладном трафике
- возможная работа через HTTP-прокси вносит свои коррективы в реальный прикладной трафик
Rouse_ (2010-05-19 14:25:00) [2]Только исходящие, т.к. входящих без вызова нет и быть не может.
Dmitriy (2010-05-19 14:22:00) [3]А всё таки, можно ли получить заголовки для отправки ДО вызова HttpSendRequest?
Rouse_ (2010-05-19 13:11:00) [4]Второй вызов делай без модификатора HTTP_QUERY_FLAG_REQUEST_HEADERS - ибо именно он отвечает за отображение исходящего
Dmitriy (2010-05-19 13:09:00) [5]
> До нее он возвращает весь запрос который уйдет на сервер,
> он и будет твоим исходящим трафиком который тебе нужно
> посчитать
Допустим,может так оно и должно быть в принципе, но я попробовал вызвать HttpQueryInfo с этим флагами до HttpSendRequest и она мне выдала, что-то типа POST 'название скрипта' HTTP/1.1, однако уже после HttpSendRequest возращает именно 'весь запрос который должен уйти на сервер'. Может я что не так делаю?
Функцию вызыва следующим образом:
//bufferLength,index:cardinal;
//buffer:array [0..1204] of char;
bufferLength := SizeOf(buffer);
index := 0;
rs := HttpQueryInfo(hRequest, HTTP_QUERY_RAW_HEADERS_CRLF or HTTP_QUERY_FLAG_REQUEST_HEADERS, @buffer, bufferLength, index);
Rouse_ (2010-05-19 12:50:00) [6]До нее он возвращает весь запрос который уйдет на сервер, он и будет твоим исходящим трафиком который тебе нужно посчитать. После нее он отдаст тебе то что вернул сервер - это будет твой входящий трафик. Суммируй и будет тебе счастье.
Dmitriy (2010-05-19 12:25:00) [7]
> Смотри в сторону HttpQueryInfo и флагах HTTP_QUERY_RAW_HEADERS_CRLF
> + модификатор HTTP_QUERY_FLAG_REQUEST_HEADERS
Прошу прощения, но в каком смысле?
Ведь почему-то HttpQueryInfo возвращает результат только после выполнения функции HttpSendRequest, а не до неё или возвращает не то, что нужно. А мне желательно учитывать трафик во время выполнения самой функции. Такое в принципе возможно?
Rouse_ (2010-05-19 11:11:00) [8]Смотри в сторону HttpQueryInfo и флагах HTTP_QUERY_RAW_HEADERS_CRLF + модификатор HTTP_QUERY_FLAG_REQUEST_HEADERS