Приложение 1. Пути к файлам и каталогам, работа с HTTP-серверами
Для доступа к файлам и каталогам в Parser можно использовать абсолютный или относительный путь.
Абсолютный путь начинается слешем, а файл ищется от корня веб-пространства. Файл по относительному пути ищется от каталога, в котором находится запрошенный документ.
Пример абсолютного пути:
/news/archive/20020127/sport.html
Пример относительного пути:
относительно каталога /news/archive…
20020127/sport.html
При записи файлов необходимые каталоги создаются автоматически.
Внимание: корень веб-пространства, переданный веб-сервером, можно изменить: см. «Корень веб-пространства».
Внимание: Parser преобразует пути к языку file-spec (см. «Внешние и внутренние данные»).
Также методы…
· | file::load
|
· | table::load
|
…может работать с внешними HTTP-серверами, если имя загружаемого документа содержит префикс
http://
Этим методам также можно задать дополнительные опции загрузки документа по HTTP, это хеш, ключами которого могут быть:
Опция
|
По-умолчанию
|
Значение
|
$.charset[кодировка]
|
берется из заголовка HTTP-ответа
|
Кодировка документов на удаленном сервере. В эту кодировку перекодируется строка запроса, и из этой кодировки перекодируется ответ. [3.1.0]
Также данная опция доступна и при загрузке локальных текстовых файлов. [3.2.2] Если загружается текстовый файл без указания кодировки и в нём обнаруживается BOM код, то его содержимое автоматически перекодируется из кодировки UTF-8 в текущую кодировку. [3.4.1] |
$.timeout(секунд)
|
2 секунды
|
Время ожидания ответа HTTP сервера в секундах. Операция загрузки должна быть завершена за это время, иначе возникнет ошибка.
|
$.method[HTTP-МЕТОД]
|
GET
|
Название HTTP-метода должно быть указано в верхнем регистре.
Название метода можно указывать и в нижнем регистре |
$.enctype[CONTENT-TYPE]
|
application/x-www-form-urlencoded
|
Допустимые значение:
application/x-www-form-urlencoded или multipart/form-data. Последнее должно быть использовано вместе с методом POST в случае, если вы отправляете удалённому серверу файлы. [3.3.1] |
$.form[
$.поле[строка] $.поле[файл] $.поле[$таблица] … ] |
отсутствует
|
Параметры запроса. Для GET запроса они будут переданы в ?строке_запроса. Для запросов с другим method, параметры будут переданы с
Content-type: application/x-www-form-urlencoded Значением может являться строка, таблица из одного столбца или файл [3.3.1]. Предпочтительно задавать параметры запросам именно при помощи $.form, а не передавать их в ?параметрах самостоятельно. Однако можно передавать их и там и там. [3.1.5] |
$.body[текст]
|
отсутствует
|
Текст тела запроса (нельзя совмещать с form и методом GET) [3.1.2]
|
$.cookies[
$.имя[значение] … ] |
отсутствует
|
Хеш, содержащий список cookies, которые необходимо передать удалённому HTTP-серверу. [3.2.3]
|
$.headers[
$.HTTP-ЗАГОЛОВОК[значение] … ] |
$.User-Agent[parser3]
|
Хеш, содержащий дополнительные HTTP-заголовки, которые необходимо передать на HTTP-сервер
Значение HTTP-заголовка может быть дата, строка или хеш с обязательным ключом value. Дата может использоваться и в качестве значения поля и в качестве значения атрибута поля, при этом она будет стандартно отформатирована. |
$.any-status(true)
|
false/0 |
Логическое: допустим ли статус ответа, не равный 200. Если ЛОЖЬ, и будет получен статус, не равный 200, возникнет системная ошибка http.status.
[3.0.8] |
$.omit-post-charset(true)
|
false/0
|
Не добавлять в HTTP-заголовок content-type исходящего POST запроса информацию о кодировке (по умолчанию добавляется). [3.3.0]
|
$.user[пользователь]
|
отсутствует
|
Задает параметры запроса к серверу,
|
$.password[пароль]
|
отсутствует
|
использующему стандартную HTTP авторизацию. [3.1.2]
|
Для ^file::load[…] также можно дополнительные опции загрузки [3.0.8], это хеш, ключами которого могут быть:
Опция
|
По-умолчанию
|
Значение
|
$.offset(смещение)
|
0
|
Загрузить данные начиная с этого смещения (в байтах).
|
$.limit(ограничение)
|
-1
|
Загрузить не более данного количества байт.
|