2015-01-29 2 views
0

Я хотел бы установить по умолчанию http hrader в HTTP-пакете Tcl для пустых и затем выборочно разместить некоторый заголовок самостоятельно, используя словарь. Мне нужно сделать это, потому что в моем заголовке HTTP-запроса Tcl я вижу много элементов (например, sock, binary, -binary, -strict, queryoffset и т. Д.), Которых нет в заголовке, указанном другим веб-браузером, например firefox. Я получаю правильный ответ в broswer, поэтому я хочу, чтобы именно тот нагреватель был отправлен броузером. Для этого мне нужно установить HTTP-заголовок по умолчанию в Tcl http-пакете на пустой и вручную установить заголовки (что я могу сделать). Как очистить заголовки по умолчанию?set default http header request to empty in tcl http

+0

Вы не можете полностью заполнить заголовки. Tcl всегда отправляет некоторые из них. Если вы просто не открываете сокет самостоятельно и не делаете все вручную. –

ответ

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 не напрямую перевести в параметры запроса. Это интерфейс более высокого уровня ...