Моят TCL скрипт не успя да оцени основния отговор на HTTP POST

когато използвам инструмента Fiddler, мога да получа HTTP POST отговор на тялото,

HTTP/1.0 200 Ok
Server: xxxx TinyServer
MIME-version: 1.0
Cache-Control: no-store, no-cache;
Pragma: no-cache;
Set-Cookie: session=0000743A; path=/;
Content-Type: text/xml
Expires: -1
Content-Length: 3509

<column><column_oid>1.3.6.1.4.1.664.5.63.900.1.20.17.1.1.1</column_oid><oid_value_pairs><![CDATA[1.3.6.1.4.1.664.5.63.900.1.20.17.1.1.1.4822:......
MORE....

Но когато опитах същата HTTP POST операция, използвайки моя TCL скрипт, получавам съобщение за грешка

set token [::http::geturl \
            "http://130.59.62.16/web/common/ajax/tcl/ajax_multi_get_xml.tcl" \
            -query "" -headers [array get Headers]]      

state(-keepalive)      = 0
state(-protocol)       = 1.1
state(-queryblocksize) = 8192
state(-queryprogress)  =
state(-strict)         = 1
state(-timeout)        = 0
state(-type)           = application/x-www-form-urlencoded
state(-validate)       = 0
state(binary)          = 0
state(body)            = <hr>
<pre><b>Session Variables:</b>


</pre><pre><b>Global Variables:</b>
base_oid = ""
rstr = ""


<b>Local Variables:</b>


</pre><hr>
can't read "oidlist": no such variable<br><b>from /web/common/ajax/tcl/ajax_multi_get_xml.tcl:8:</b><pre>
  1:
   2:    set rstr ""
   3:    if {[catch {set baseOID}] } {
   4:       set base_oid ""
   5:    } else {
   6:       set base_oid $baseOID
   7:    }
 <font color=red>  8:
 </font>  9:    snmp_getmulti $oidlist value err $count $base_oid
  10:    echo -n "<rvals>$value</rvals>"
  11: </pre>

Използвайки Firefox Web Developer, когато преместих необходимата страница, тя показваше, че извършвам POST операция, моля, вижте екранната снимка по-долу.

Тук нямам подадена заявка в моята POST операция, така че запазих празни места в моя geturl. Този тип URL адрес как да използвам операция за заявка.

въведете описание на изображението тук

Какво пропуснах между инструмента Fiddler и моя скрипт, можех да видя с помощта на Firefox Прозорец на конзолата за уеб разработчици


person Mallikarjunarao Kosuri    schedule 24.12.2013    source източник
comment
Какви точно заглавки се изпращат от браузъра? (И това http::geturl повикване прави GET, а не POST...)   -  person Donal Fellows    schedule 24.12.2013
comment
Ако искате POST, трябва да предоставите флага -query с ::http::geturl, моля, вижте документацията.   -  person Hai Vu    schedule 25.12.2013
comment
Благодаря на всички, моля, вижте снимката на екрана по-горе.   -  person Mallikarjunarao Kosuri    schedule 26.12.2013


Отговори (1)


Правилният начин за отстраняване на грешки е да

  1. Уловете работната заявка от Fiddler
  2. Използвайте Fiddler, за да заснемете неработещата заявка от вашия TCL скрипт
  3. Изберете работещите и неработещите заявки в списъка с уеб сесии на Fiddler.
  4. Щракнете с десния бутон и изберете „Сравнение на сесии“.

Fiddler ще ви покаже как се различават двете заявки, така че можете да актуализирате своя TCL скрипт, за да изпратите правилната заявка.

person EricLaw    schedule 26.12.2013