17/06/2021, 16:03
Si vous avez besoin de l'équivalent de wget en tcl, voici un bout de script qui vous aidera:
Si vous appelez
Ce bout de code ne suit pas les redirections, il est fait à la base pour récupérer des fichiers dont on connait exactement l'emplacement
tcl
namespace eval utils {
variable store "databases/"
package require http
package require tls
proc wget {url {output ""}} {
if {$output == ""} {
set output [file tail $url]
}
::http::register https 443 [list ::tls::socket -tls1 1 -autoservername 1]
if {[catch {set tok [::http::geturl $url -binary 1]}]} {
return "error..."
}
set fo [open ${::utils::store}${output} w]
fconfigure $fo -translation binary
puts -nonewline $fo [::http::data $tok]
close $fo
::http::cleanup $tok
::http::unregister https
return $output
}
}
Si vous appelez
::utils::wget
avec une simple url en paramètre, le nommage du fichier peut être variable:- ::utils::wget https://mon.domaine.com/ donnera le fichier mon.domaine.com
- ::utils::wget https://mon.domaine.com/moi/ donnera le fichier moi
- ::utils::wget https://mon.domaine.com/moi/toto.gif donnera le fichier toto.gif
- ::utils::wget https://mon.domaine.com/test.php?id=18 donnera le fichier test.php?id=18
Ce bout de code ne suit pas les redirections, il est fait à la base pour récupérer des fichiers dont on connait exactement l'emplacement