Если вы не можете заставить работать хранилище ключей, возможно, вы захотите попробовать это.
Создайте специальный исполняемый файл командной строки (.exe), который будет читать веб-страницу и сохранять исходный текст в виде текста. файл. Затем вы можете использовать ColdFusion для чтения файла и работы с данными.
Вот код ColdFusion:
<cfscript>
_execPath = "c:/bin/clifton.exe";
_filePath = "c:/bin/clifton.txt";
// run your command-line app (clifton.exe)
cfexecute(name="#_execPath#");
// wait for the file
do {
sleep(100);
} while ( not fileExists(_filePath) )
// wait for write to finish
do {
sleep(100);
_fileInfo = getFileInfo(_filePath);
writeOutput(" ## ");
cfflush();
} while ( _fileInfo.size eq 0 || dateDiff("s", _fileInfo.lastmodified, now()) lte 3 )
writeOutput("<hr />")
_result = fileRead(_filePath);
writeDump(_result);
</cfscript>
Как видите, он зависит от clifton.exe
и читает clifton.txt
(clifton.txt - результат выполнения clifton.exe).
Как создать clifton.exe
Вы будете использовать Dart SDK и инструмент dart2native
для создания исполняемого файла на вашем компьютере разработчика. Вы можете развернуть исполняемый файл на своем производственном сервере как автономный (вам не нужно устанавливать Dart SDK в производственной среде).
// clifton.dart
import 'dart:convert';
import 'dart:io';
main() {
//
const String _certFilePath = 'c:/bin/sfig2.crt.pem';
const String _responseFilePath = 'c:/bin/clifton.txt';
const String _uri =
'https://www.cliftoncameras.co.uk/all-brands-and-types-of-used-cameras/';
final File _file = new File(_responseFilePath);
final IOSink _sink = _file.openWrite();
final SecurityContext _context = new SecurityContext();
_context.setTrustedCertificates(_certFilePath);
final HttpClient _client = new HttpClient(context: _context);
saveSourceToFile(_client, _uri, _sink);
_client.close();
//
}
// get web page source then write it to file
void saveSourceToFile(HttpClient _client, String _uri, IOSink _sink) {
//
_client
.getUrl(Uri.parse(_uri))
.then((req) => req.close())
.then((res) => res.transform(Utf8Decoder()).listen((data) {
// as data is received write to file
_sink.write(data);
}, onDone: () {
_sink.close();
}));
//
}
- Загрузите и установите Dart SDK из https://dart.dev/
- Откройте окно терминала и проверьте установку Dart с помощью
dart --version
(вы должны иметь возможность запускать дротик из любой папки, при необходимости добавьте дротик в ваш PATH) - В окне терминала измените каталог на
c:\bin
с помощью cd c:\bin
- Далее, запустите
dart2native clifton.dart -o clifton.exe
- Если компиляция прошла успешно, у вас должны быть внутри
c:\bin
три файла: clifton.dart
, clifton.exe
и сертификат sfig2.crt.pem
. - Если вы wi sh вы можете протестировать запуск
clifton.exe
в окне терминала, который должен создать файл clifton.txt
. - Протестируйте страницу ColdFusion, h вызывает
clifton.exe
, ждет clifton.txt
, затем выводит содержимое.
Если вы развертываете в производственной среде, вам понадобятся оба файла clifton.exe
и sfig2.crt.pem
(сертификат).
Удачи!