Как узнать имя файла?
pHttpCon =
session.GetHttpConnection(szServerName); fr=pHttpCon->OpenRequest("GET",szPath);
fr->SendRequest();
если szPath представляет собой запрос типа
index.php?...и тут куча параметров, а в качестве овета, например, mp3 файл, то как узнать имя этого файла? Да и вообще не важно какой это файл просто надо знать его имя. Как это сделать. Хотелось бы увидеть пример. Заранее благодарю.
Имеется что-то вроде такого кода
pHttpCon =
session.GetHttpConnection(szServerName); fr=pHttpCon->OpenRequest("GET",szPath);
fr->SendRequest();
если szPath представляет собой запрос типа
index.php?...и тут куча параметров, а в качестве овета, например, mp3 файл, то как узнать имя этого файла? Да и вообще не важно какой это файл просто надо знать его имя. Как это сделать. Хотелось бы увидеть пример. Заранее благодарю.
Для полного описания смотри Request for Comments 2616 (RFC2616) или более старые, это описание HTTP/1.1, а также желательно иметь и RFC1521 это MIME.
Их полно в интернете, например здесь:
http://www.ietf.org/rfc/rfc2616.txt
http://ftp.ics.uci.edu/pub/ietf/http/rfc1945.html
http://www.faqs.org/rfcs/rfc1521.html
Имя и MIME-тип возвращается в HTTP заголовках MIME.
грубо говоря, напиример ты отправляешь:
GET /download.php?cmd=newest_porn HTTP/1.1
Accept: text/*,image/*,video/*
Referer: /index.htm
User-Agent: myagent/1.0
а в ответ, например, придёт:
HTTP/1.1 200 OK
Server: Apache/1.3.23
Content-Length: 1234567
Content-Type: image/jpeg
Date: Sat, 23 Nov 2002 10:32:31 GMT
Location: http://www.lolita.com/new/suck01.jpg
<сами данные>
ну а дальше всё ясно. кстати обрати внимание на даты они обычно в GMT либо указывется как: Date: Sat, 23 Nov 2002 13:32:31 +0300 - московское время
А если сам скрипт генерит изображение то имени не будет:
вот ответ скрипта который генерит html:
HTTP/1.1 200 OK
Content-Length: 12345
Content-Type: text/html
Date: Sat, 23 Nov 2002 10:32:31 GMT
<html>
<head>
....
</html>
вот ответ скрипта который генерит gif:
HTTP/1.1 200 OK
Content-Length: 12345
Content-Type: image/gif
Date: Sat, 23 Nov 2002 10:32:31 GMT
<двоичные данные>
вообще протокол HTTP достаточно коварный, имена файлов зачастую узнать просто нельзя:
типичный пример: http://www.my.com/user/
какой там файл index.htm/index.asp/default.php или вообще kuku.html остаётся гадать....
я както писать кролер, потому намучился с этим изрядно, а вот когда делал компоненты для POP и SMTP протоколов я освоил MIME это тоже целая песня :)
интересно а как будет выглядеть посылка на сервер
запроса с испоьзованием команды Range, смотрел лог Reget, пытался писать также как и там , но почему то не чего не выходит. Был бы очень блогадарен, если в ответе был бы приведен пример :)
СПАСИБО!