Руководство разработчика

Метод HTTP.ЗАПРОС_ФАЙЛ

Выполняет HTTP запрос. Входные данные могут задаваться файлом или строкой, а выходные – получаются только в файл. Никакой обработки данных не производится – формирование запроса и разбор ответа полностью осуществляются прикладным программистом.

ФУНКЦИЯ ЦЕЛОЕ: ЗАПРОС_ФАЙЛ(СТРОКА: вход_файл; 
                           СТРОКА: выход_файл; 
                           СТРОКА: действие_http = "POST"
                           СТРОКА: флаги = "")

Параметры

вход_файл
Данные для отправки в HTTP запросе. Нужны для POST и PUT, не нужны для DELETE. Для использования с GEТ нужно установить соответствующий флаг "G". Для других действий (custom request) файл с данными указывается при необходимости.

Для отправки полей формы как multipart/form-data (аналог curl --form) в параметре указывается "*", а данные для формирования тела запроса берутся из поля поля_формы. См. подробности и примеры в описании типа HTTP_ПОЛЕ_ФОРМЫ.

Если установлен флаг "S", то содержимое параметра интерпретируется как входная строка, содержащие данные запроса. Для передачи содержимое входной строки перекодируется в UTF-8.
выход_файл
Данные ответа. Иногда даже в запросах, не подразумевающих тела ответа (вроде DELETE) это тело все равно приходит – потому корректное имя файла нужно задавать даже в этом случае.
действие_http
Действие HTTP. Поддерживаются основные действия GET, POST, PUT, DELETE (набор для REST). По умолчанию – нужный для XML-RPC POST. Также можно указать другое действие (custom request).
флаги
Строка, состоящая из символов-флагов. В настоящее время поддерживаются следующие флаги:
  • S – интерпретировать параметр вход_файл как входную строку данных. Позволяет задать входные данные запроса в строке, а не файле.
  • G – использовать параметр вход_файл при выполнении GET запроса, аналогично опции --get у CURL. При этом содержимое файла дописывается к указанному в члене url URL.
  • O – игнорировать признак offline, определяемый Windows. Позволяет выполнять http-запрос в локальной сети без доступа к Интернету.

Возвращаемое значение

0 при успехе на сетевом уровне. Полученные от сервера данные не проверяются, поэтому если сервер вернул ошибку уровня используемого протокола (например, ошибку XML-RPC, или ответ в неверном формате), метод все равно вернет 0. Коды возврата HTTP, соответствующие ошибкам (400+), как ошибки не интерпретируются. Значения такие же, как и у функции ПОЛУЧИТЬ_ФАЙЛ.


См. также: