Метод 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+), как ошибки не интерпретируются. Значения такие же, как и у функции ПОЛУЧИТЬ_ФАЙЛ.