URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 5421
[ Назад ]

Исходное сообщение
"TCL http"

Отправлено Roma , 15-Май-06 17:19 
Есть задача - сформировать через TCL http HTML заголовок для посылки команды на модем через WEB.
Вот часть кода :

proc geturl_auth {url username password} {
    set auth "Basic [base64::encode $username:$password]"
    set ref "http://192.168.1.1/reset/\n"
    set zapros "reset/index.html"
    set headerl [list Authorization $auth Referer $ref]
    set tok [http::geturl $url -headers $headerl ?? -query ???]
    set res [http::data $tok]
    http::cleanup $tok
    return $res
}

geturl_auth "http://192.168.1.1/reset/index.html" "admin" "admin"

Если делать без опции -query $variable то отсылается запрос GET. Для запроса POST нужно применять опцию -query , но она вставляет ненужное поле - и команда не проходит.
Вот такой пакет нужно сформировать :

POST /reset/index.html /HTTP/1.1\r\n
Request method: POST
Request URI: /reset/index.html
Request Version: HTTP/1.1
Host: 192.168.1.1\r\n
User-agent: Mozilla....
Referer: http://192.168.1.1/reset/\r\n
Authorization: Basic xxxxx
Credentials: admin:admin

Если применять -query " " то вставляется еще :

Line-based text data: application/x-www-form-url-encoded

Модем отвечает на него Bad request.



Содержание

Сообщения в этом обсуждении
"TCL http"
Отправлено chip , 15-Май-06 20:03 
>Line-based text data: application/x-www-form-url-encoded
>
>Модем отвечает на него Bad request.

Позвольте, а модем здесь причем?


"TCL http"
Отправлено Roma , 16-Май-06 09:52 
>>Line-based text data: application/x-www-form-url-encoded
>>
>>Модем отвечает на него Bad request.
>
>Позвольте, а модем здесь причем?

Модем управляется через WEB. Мне его нужно таким образом резетнуть. И желательно с помощью TCL скрипта.