Как вы скачиваете файлы по HTTP с помощью Vala? - PullRequest
1 голос
/ 04 апреля 2020

Я попытался использовать libsoup-2.4 с https://valadoc.org/libsoup-2.4/Soup.RequestFile.html

, но создание RequestFile защищено, и я не вижу операции, которая возвращает этот объект или объект, который наследует RequestFile.

Следующее работает, но мне было интересно, есть ли более короткий или лучший способ, будь то с той же библиотекой или другими.

// Where url is a string containing the file location (https://...)
Soup.Request request = session.request (url);
InputStream stream = request.send ();

// Create the file
File file = File.new_for_path ("Example File.zip");
FileOutputStream os = file.create (FileCreateFlags.REPLACE_DESTINATION);

// Write bytes to the file
os.splice (stream, OutputStreamSpliceFlags.CLOSE_TARGET);

1 Ответ

2 голосов
/ 04 апреля 2020

Да, это проще сделать с помощью gio-2.0. Просто откройте первый файл по URL, второй файл локально, и скопируйте первый файл во второй. Следующий пример загружает код этой html страницы.

...