http :: getUrl中的头参数

时间:2016-07-28 12:01:37

标签: tcl

我将http :: getUrl中的头参数传递为

-headers {Authorization {Bearer $token} Content-Type application/json}

但它不代替令牌值。 现在我正在创建一个上面的一个字典,然后直接传递它 -headers $data

它们以任何方式直接传递值,其中发生变量替换

1 个答案:

答案 0 :(得分:3)

这是因为{}中的字符串未被评估,所以你在这里有2路。

第一种是使用list命令:

-headers [list \
             Authorization [list Bearer $token] \
             Content-Type application/json ]

第二个是通过subst命令:

-headers [subst -nocommands \
           {Authorization {Bearer $token} Content-Type application/json}]

第一种方法是正确使用,因为它等同于OP示例,只是列表的不同表达式。

第二种方式的目的是,如果您将参数输入作为变量,并且无法更改代码中的格式。

请注意,subst的情况适用于字符串,而不是上一种方法的列表。

它的工作原理与字符串相同,可以很容易地转换为列表:

$ tclsh
% set x "A B C D"
A B C D
% lindex $x 0
A
% 

如您所见,变量x是一个字符串,但您可以访问,因为它是一个没有问题的列表。