2016-07-28 8 views
0

Я передаю параметры заголовков в HTTP :: GetURL взаголовки параметров в HTTP :: GetURL

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

но не подставляя значение маркера. Сейчас я создаю Dict шаг выше, а затем передать его непосредственно -headers $data

Это их каким-либо образом передать значение непосредственно, где подстановка переменной происходит

ответ

3

Это происходит потому, что строка в {} не оцениваются , так что у вас есть 2 пути здесь.

Первый с помощью команды списка:

-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 является строкой, но вы можете получить доступ, как это список без проблем.

+1

Я бы настоятельно рекомендовал первый; второй может иметь неожиданное поведение, если токен содержит метасимволы из списка ('' '' '' '' '' 'особенно). –

+0

Правильно, спасибо, я объяснил, что эта часть, и разница с двумя методами. –

+0

Спасибо большое !!!! :) – Dcode

Смежные вопросы