package require "http" proc errLog args { puts $args } proc SendHttp args { global token set toUrl [lindex $args 0] if {[catch {set token [::http::geturl $toUrl ]} errMsg]} { errLog "geturl error: $errMsg" return -code -1 "geturl error: $errMsg" } return "send OK" } proc RecvHttp args { global token ::http::wait $token set rStatus [::http::status $token] if {$rStatus == "timeout"} { errLog "RecvHttp Error: http connect timeout" ::http::cleanup $token return -code -1 "timeout" } elseif {$rStatus == "reset"} { errLog "RecvHttp Error: http connect reset" ::http::cleanup $token return -code -1 "reset" } elseif {$rStatus != "ok"} { errLog "RecvHttp Error: $rStatus" ::http::cleanup $token return -code -1 "$rStatus" } ##############process Responce################### set rSize [::http::size $token] set rBody [::http::data $token] ::http::cleanup $token errLog "receive message is [encoding convertfrom utf-8 $rBody]" return $rBody } set toUrl "http://www.baidu.com" puts $toUrl if {[catch {SendHttp $toUrl} errMsg]} { errLog "SendHttp error: $errMsg" } else { catch {RecvHttp} }