====== package require http proc getPage { url } { # no cleanup, so we lose some memory on every call return [ ::http::data [ ::http::geturl $url ] ] } set file [ getPage $url ] ====== ---- The above is a basic example of the [http] package. It however doesn't account for proxys, URL redirects, etc. See [grabchat] for code which tries to handle some additional issues. Some further examples can be found at the [http] page. The example above omits cleanup, so memory consumption rises when you use it to get many pages. The example below cares for cleanup. ---- ====== package require http proc getPage { url } { set token [::http::geturl $url] set data [::http::data $token] ::http::cleanup $token return $data } ====== ---- [KPV] If you need to download lots of files, check out [Parallel Geturl] which lets you overlap many ''getPage'' calls simultaneously. <> Internet