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}
}
tcl实现http请求的更多相关文章
- 浅谈HTTP请求头content-type
请求消息和响应消息都可以包含实体信息,实体信息一般由实体头域和实体组成.实体头域包含关于实体的原信息,实体头包括Allow.Content- Base.Content-Encoding.Content ...
- tcl调用tuxedo的一个demo
Tuxedo是Oracle的一个商业中间件,一般用于通信. 如下是一个简单的调用tuxedo的so动态库实现,编译后,tcl脚本可以加载并调用这个so库实现对tuxedo的调用. 1. 代码例子,保存 ...
- javaweb请求编码 url编码 响应编码 乱码问题 post编码 get请求编码 中文乱码问题 GET POST参数乱码问题 url乱码问题 get post请求乱码 字符编码
乱码是一个经常出现的问题 请求中,参数传递的过程中也是经常出现乱码的问题 本文主要整理了请求乱码中的问题以及解决思路 先要理解一个概念前提: 编码就是把图形变成数值码所以说: 图形的字符 -- ...
- HackPwn:TCL智能洗衣机破解细节分析
上周结束的Hackpwn上,黑客们脑洞大开,破解了比亚迪汽车.小米手环.乐小宝.长虹电视.TCL洗衣机和九阳豆浆机等一系列最新的智能硬件,据黑客介绍,TCL是一家把家门“砌死”的企业,由于得到了将要被 ...
- asp.net Core 使用过滤器判断请求客户端是否为移动端,并实现PC端和移动端请求映射和自动跳转
很多时候我们做网站时单纯的用bootstrap等前端框架实现的前端自适应带给用户的体验并不太好,所以为了提高用户体验会专门针对PC端网页重新设计一套移动端网页,但是怎么才能做到在移动端访问PC页面的时 ...
- Response.ContentType 详细列表-请求的内容类型详细记录
Response.ContentType 详细列表-请求的内容类型详细记录 作者:王春天一.应用实例: Response.Clear(); Response.ContentType = "t ...
- nginx限制请求之三:Nginx+Lua+Redis 对请求进行限制
相关文章: <高可用服务设计之二:Rate limiting 限流与降级> <nginx限制请求之一:(ngx_http_limit_conn_module)模块> <n ...
- TCL数据类型
原始数据类型在Tcl中是字符串,我们常常可以找到字符串和引用在Tcl语言中.这些原始数据类型依次创建复合数据类型列表和关联数组.在Tcl中,数据类型可以表示不仅是简单Tcl的对象,但也可以代表相同的句 ...
- Web—13-判断网站请求来自手机还是pc浏览器
判断网站请求来自手机还是pc浏览器 #判断网站来自mobile还是pc def checkMobile(request): """ demo : @app.route(' ...
随机推荐
- CF 435B Pasha Maximizes(贪心)
题目链接: [传送门][1] Pasha Maximizes time limit per test:1 second memory limit per test:256 megabytes ...
- spring 初始化之后执行的方法
Spring初始化完成后直接执行一个方法,初始化数据(解决方法并执行两次) 在做WEB项目时,经常在项目第一次启动时利用WEB容器的监听.Servlet加载初始化等切入点为数据库准备数据,这些初始化数 ...
- Git工具:Widows下的使用(提交到Github)
2016年12月9日17:07:07 Git工作原理 http://deweixu.me/2016/11/05/how-git-works/ 2016年12月1日14:25:23 ---------- ...
- 刨根问底Objective-C Runtime
http://chun.tips/blog/2014/11/05/bao-gen-wen-di-objective%5Bnil%5Dc-runtime-(2)%5Bnil%5D-object-and- ...
- java常用集合详解 contains
java集合是对常用数据集合的封装,差不多就是数组吧,验证某个元素是否在数据集合里,最原始的方法是,用个循环,"某个元素"与数据集合中的每个元素逐个进行比较. java 对常用的一 ...
- 支持向量机(SVM)入门
一.简介 支持向量机,一种监督学习方法,因其英文名为support vector machine,故一般简称SVM. 通俗来讲,它是一种二类分类模型,其基本模型定义为特征空间上的间隔最大的线性分类器, ...
- android webview里获取和设置cookie
private class MyWebViewClient extends WebViewClient { public boolean shouldOverrideUrlLoading(WebVie ...
- easyUI-combobox 后台导入Json数据的方法
一.前台页面: <input id="List" class="easyui-combobox" data-options="valueFiel ...
- Java——单选按钮:JRadioButton
import java.awt.Container; import java.awt.GridLayout; import java.awt.event.WindowAdapter; import j ...
- Flash Builder 4.7 破解
http://litech.diandian.com/post/2013-03-22/40049178994 Adobe Flash Builder 4.7 For Mac 破解 和Photoshop ...