我想将Tcl http包中的默认http hrader设置为空,然后使用字典自行添加一些标题。我需要这样做,因为我在我的Tcl http请求标头中看到许多项目(如sock,binary,-binary,-strict,queryoffset等),这些项目在其他Web浏览器(如firefox)指定的标头中不存在。我在broswer得到了正确的回应,所以我想要那些由浏览器发送的加热器。为此,我需要将Tcl http包中的默认http标头设置为空,并手动设置标头(我可以这样做)。如何清空默认标题?
答案 0 :(得分:1)
我不太确定您遇到问题的标头,但是大多数标头可以通过-headers
选项轻松设置到http::geturl
:
# Easiest to build the option as a dictionary
dict set opts X-Example-Header "fruitbats are mammals and this is nonsense"
dict set opts DNT "1 (Do Not Track Enabled)"
http::geturl $theurl -headers $opts
几乎所有东西都可以通过这种方式设置或覆盖,而且通常与网络连接本身的管理相关的事情(例如保持活动管理,分块,压缩)可能最好留给首先,因为HTTP / 1.1是一个非常复杂的协议,因为它可能是无状态的。
请注意,http::geturl
的选项不会直接转换为请求选项。这是一个更高级别的界面...