Я использую http :: geturl для отправки двоичного файла с помощью этой команды
set fid [open $filename RDONLY]
fconfigure $fid -buffering full -encoding binary -translation binary
::http::geturl {http://10.39.51.221:11009/api/v1/sessions/1/ixnetwork/files?filename=test} \
-type application/octet-stream \
-querychannel $fid \
-binary true \
-headers {X-Api-Key 00000000000000000000000000000000 IxNetwork-Lib {IxNetwork tcl client v.IXTCLPROTOCOLVERSION} Host 10.39.51.221} \
-timeout 180000
Этот код корректно работал против Tcl-8.6.6 с http-2.8.9.Но клиент зависает при использовании того же кода против того же Tcl-8.6.6 с другим пакетом http (http-2.9);Я чувствую это изменение поведения из-за этого изменения .
Ранее -translation
был установлен только как двоичный файл (http-2.8.9)
fconfigure $state(-querychannel) -blocking 1 -translation binary
, тогда как в настоящее время -translation
также извлекается из сокета (http-2.9)
lassign [fconfigure $sock -translation] trRead trWrite
fconfigure $state(-querychannel) -blocking 1 \
-translation [list $trRead binary]
Тот же код работает правильно при возврате к (fconfigure $state(-querychannel) -blocking 1 -translation binary
) в базе кода http-2.9.Пожалуйста, предложите любые изменения в моем коде для работы как с http-2.8.6, так и с http-2.9.