tcl实现http请求

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}
}

  

转载于:https://www.cnblogs.com/voipman/p/5048461.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值