我的TCL脚本无法评估HTTP POST正文响应

我的TCL脚本无法评估HTTP POST正文响应,http,post,web,tcl,fiddler,Http,Post,Web,Tcl,Fiddler,当我使用这个工具时,我可以得到HTTP POST body响应 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&g

当我使用这个工具时,我可以得到HTTP POST body响应

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/1.0 200正常
服务器:xxxx TinyServer
MIME版本:1.0
缓存控制:无存储,无缓存;
Pragma:没有缓存;
设置Cookie:session=0000743A;路径=/;
内容类型:text/xml
过期:-1
内容长度:3509
1.3.6.1.4.1.664.5.63.900.1.20.17.1.1.1
但当我使用TCL脚本尝试相同的httppost操作时,我收到了错误消息

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>
set token[::http::geturl\
"http://130.59.62.16/web/common/ajax/tcl/ajax_multi_get_xml.tcl" \
-查询“”-标题[数组获取标题]]
状态(-keepalive)=0
状态(-protocol)=1.1
状态(-queryblocksize)=8192
状态(-queryprogress)=
状态(-strict)=1
状态(-timeout)=0
状态(-type)=应用程序/x-www-form-urlencoded
状态(-validate)=0
状态(二进制)=0
国家(机构)=
会话变量: 全局变量: base_oid=“” rstr=“” 局部变量:
无法从/web/common/ajax/tcl/ajax\u multi\u get\u xml读取“oidlist”:没有此类变量。tcl:8: 1: 2:设置rstr“” 3:如果{[catch{set baseOID}]}{ 4:设置基本对象“” 5:}其他{ 6:设置基本对象$baseOID 7: } 8: 9:snmp\u getmulti$oidlist值错误$count$base\u oid 10:echo-n“$value” 11:
使用Firefox Web Developer,当我移动所需页面时,它显示我正在进行POST操作,请查看下面的屏幕截图

在这里,我的POST操作中没有查询字段,所以我在geturl中保留了一个空格。这种类型的URL如何使用查询操作

我在Fiddler工具和我的脚本之间错过了什么,
我可以使用查看,正确的调试方法是

  • 捕获来自Fiddler的工作请求
  • 使用Fiddler从TCL脚本捕获非工作请求
  • 在Fiddler的Web会话列表中选择工作和非工作请求
  • 右键单击并选择“比较会话”

  • Fiddler将向您展示这两个请求的不同之处,因此您可以更新TCL脚本以发送正确的请求。

    浏览器发送的确切标题是什么?(而且,
    http::geturl
    调用正在执行GET,而不是POST…)如果您想要POST,您需要提供带有
    ::http::geturl
    -query
    标志,请查看文档。谢谢大家,请查看上面的屏幕截图。