set url "http://google.com" set timeout 5 set token [::http::geturl "$url" -timeout [expr round(1000 * $timeout)]] upvar #0 $token state switch -exact [::http::status $token] { "timeout" { putlog "status = timeout (url = $state(url))" } "error" { putlog "status = error([::http::error $token]) (url = $state(url))" } "ok" { switch -glob [::http::ncode $token] { 3* { array set meta $state(meta) putlog "status = ok (url = $state(url)), redirect to $meta(Location)" fetch_html $meta(Location) } 200 { putlog "status = ok (url = $state(url)), do parsing" process $state(body) } default { putlog "status = default, error" } } } default { putlog "status = unknown, default, error" } }