我正在尝试编写一个从特定设备中删除文件的程序。该设备有一个 REST API,我可以从 CLI 毫无问题地访问它。
例如,如果我在 CLI 中编写它,它可以工作:
$clip="test.mov"
$ClipsURL="http://123.45.67.89/clips"
$ClipToDelete=@{action="delete";clipname=$clip}
Invoke-RestMethod -Uri $ClipsURL -Body $ClipToDelete -Method Post -ContentType "application/x-www-form-urlencoded"
我可以使用 $ClipToDelete 参数(更改 $clip 的值),它每次都有效。
现在当我把它放在一个循环中(在我的主脚本中)它第一次工作,然后超时。
foreach($clip in $ListClips) {
$clip="test.mov"
$ClipsURL="http://123.45.67.89/clips"
$ClipToDelete=@{action="delete";clipname=$clip}
Invoke-RestMethod -Uri $ClipsURL -Body $ClipToDelete -Method Post -ContentType "application/x-www-form-urlencoded"
}
在调试时,我可以清楚地看到作为参数传递给 Invoke-RestMethod 的所有值都是正确的(URL 和正文是正确的)。
我的第一印象是,在再次尝试发布之前,我可能应该关闭会话(如果这有意义的话)。
我尝试SessionVariable
在命令中添加一个参数,但它没有改变任何东西
是否有人已经知道如何关闭打开的网络会话(使用新的 Invoke-RestMethod 命令)?还是有人认为问题出在其他地方?
谢谢你。