Skip to content

Commit

Permalink
feat: Добавление передачи строки запроса (query string) #9
Browse files Browse the repository at this point in the history
Для следующих методов добавлен параметр СтрокаЗапроса:
- Получить
- ПолучитьТекст
- ПолучитьJson
- ПолучитьДвоичныеДанные
- СкачатьФайл
  • Loading branch information
Stivo182 committed Oct 30, 2024
1 parent d29a1f6 commit d63412c
Showing 1 changed file with 71 additions and 9 deletions.
80 changes: 71 additions & 9 deletions src/ExternalDataProcessors/cURL/ObjectModule.bsl
Original file line number Diff line number Diff line change
Expand Up @@ -64,12 +64,23 @@
//
// Параметры:
// URL - Строка - Адрес ресурса в сети Интернет
// СтрокаЗапроса - Структура - Коллекция пар имя-значение, подставляемые в URL после
// вопросительного знака (query string)
// - Соответствие из КлючИЗначение
// - Строка
// - Неопределено
//
// Возвращаемое значение:
// см. ЭтотОбъект
Функция Получить(URL) Экспорт
Функция Получить(Знач URL, СтрокаЗапроса = Неопределено) Экспорт

Если Не СтрокаЗапроса = Неопределено Тогда
URL = ДополнитьАдресСтрокойЗапроса(URL, СтрокаЗапроса);
КонецЕсли;

МетодЗапроса = ОпределитьМетодЗапроса(URL, Истина);
Возврат ОтправитьЗапрос(URL, , МетодЗапроса);

КонецФункции

// Отправляет данные на сервер по URL.
Expand Down Expand Up @@ -110,33 +121,48 @@
//
// Параметры:
// URL - Строка - Адрес ресурса в сети Интернет
// СтрокаЗапроса - Структура - Коллекция пар имя-значение, подставляемые в URL после
// вопросительного знака (query string)
// - Соответствие из КлючИЗначение
// - Строка
// - Неопределено
//
// Возвращаемое значение:
// Строка - Полученное содержимое по URL в текстовом формате
Функция ПолучитьТекст(URL) Экспорт
Возврат Получить(URL).ОтветКакТекст();
Функция ПолучитьТекст(URL, СтрокаЗапроса = Неопределено) Экспорт
Возврат Получить(URL, СтрокаЗапроса).ОтветКакТекст();
КонецФункции

// Получает содержимое по URL и возвращает в формате JSON.
//
// Параметры:
// URL - Строка - Адрес ресурса в сети Интернет
// СтрокаЗапроса - Структура - Коллекция пар имя-значение, подставляемые в URL после
// вопросительного знака (query string)
// - Соответствие из КлючИЗначение
// - Строка
// - Неопределено
//
// Возвращаемое значение:
// Произвольный - Полученное содержимое по URL в формате JSON
Функция ПолучитьJson(URL) Экспорт
Возврат Получить(URL).ОтветКакJson();
Функция ПолучитьJson(URL, СтрокаЗапроса = Неопределено) Экспорт
Возврат Получить(URL, СтрокаЗапроса).ОтветКакJson();
КонецФункции

// Получает содержимое по URL и возвращает в формате двоичных данных.
//
// Параметры:
// URL - Строка - Адрес ресурса в сети Интернет
// СтрокаЗапроса - Структура - Коллекция пар имя-значение, подставляемые в URL после
// вопросительного знака (query string)
// - Соответствие из КлючИЗначение
// - Строка
// - Неопределено
//
// Возвращаемое значение:
// ДвоичныеДанные, Неопределено - Полученное содержимое по URL в формате двоичных данных
Функция ПолучитьДвоичныеДанные(URL) Экспорт
Возврат Получить(URL).ОтветКакДвоичныеДанные();
Функция ПолучитьДвоичныеДанные(URL, СтрокаЗапроса = Неопределено) Экспорт
Возврат Получить(URL, СтрокаЗапроса).ОтветКакДвоичныеДанные();
КонецФункции

// (HTTP FTP FILE) Получает заголовки по URL.
Expand All @@ -160,14 +186,19 @@
// Параметры:
// URL - Строка - Адрес ресурса в сети Интернет
// ПутьДляСохранения - Строка - Путь на сервере (включая имя файла), для сохранения скачанного файла
// СтрокаЗапроса - Структура - Коллекция пар имя-значение, подставляемые в URL после
// вопросительного знака (query string)
// - Соответствие из КлючИЗначение
// - Строка
// - Неопределено
//
// Возвращаемое значение:
// Строка, Неопределено - Путь к загруженному файлу
Функция СкачатьФайл(URL, ПутьДляСохранения = "") Экспорт
Функция СкачатьФайл(URL, ПутьДляСохранения = "", СтрокаЗапроса = Неопределено) Экспорт
Если ПутьДляСохранения <> Неопределено Тогда
УказатьФайлСохраненияРезультата(ПутьДляСохранения);
КонецЕсли;
Возврат Получить(URL).ОтветКакПутьФайлу();
Возврат Получить(URL, СтрокаЗапроса).ОтветКакПутьФайлу();
КонецФункции

// Возвращает путь к файлу результата запроса.
Expand Down Expand Up @@ -1622,6 +1653,37 @@

КонецПроцедуры

// Дополняет URL строкой запроса.
//
// Параметры:
// URL - Строка - Адрес ресурса в сети Интернет
// СтрокаЗапроса - Структура - Коллекция пар имя-значение
// - Соответствие из КлючИЗначение
// - Строка
//
// Возвращаемое значение:
// Строка - Адрес ресурса в сети Интернет
Функция ДополнитьАдресСтрокойЗапроса(URL, СтрокаЗапроса)

СтрокаЗапросаТекст = "";
ТипСтрокиЗапроса = ТипЗнч(СтрокаЗапроса);

Если ТипСтрокиЗапроса = Тип("Строка") Тогда
СтрокаЗапросаТекст = СтрокаЗапроса;
ИначеЕсли ТипСтрокиЗапроса = Тип("Структура") Или ТипСтрокиЗапроса = Тип("Соответствие") Тогда
СтрокаЗапросаТекст = СтруктураВТелоЗапроса(СтрокаЗапроса);
Иначе
ВызватьИсключение СтрШаблон("Передача строки запроса с типом '%1' не реализована", ТипСтрокиЗапроса);
КонецЕсли;

Если ПустаяСтрока(СтрокаЗапросаТекст) Тогда
Возврат URL;
КонецЕсли;

Возврат СтрШаблон("%1?%2", URL, СтрокаЗапросаТекст);

КонецФункции

// Преобразует структуру в тело запроса.
//
// Параметры:
Expand Down

0 comments on commit d63412c

Please sign in to comment.