我设置了一个测试网页,我试图将信息传递给(为了引起一个动作),但是当我尝试它时,没有任何反应。当我在Web浏览器中运行它时,我从else条件获得输出,然后像我预期的那样获得单词DONE。为什么我的AHK脚本没有从if条件返回数据?
test.php的
<?php
echo $_POST['userMe'].$_POST['passME'];
if(isset($_POST['userMe']))
{
echo "user value was passed by POST var when page was loaded. Do action.....this is what I expect to happen";
}
else
{
echo "no user provided by POST var";
}
echo '<br>DONE';
?>
web_request.ahk
#include httpQuery.ahk
#noenv
#SingleInstance force
html := ""
URL := "http://MY_IP_HERE/test.php"
POSTData := "userME=hello&passME=bye"
length := httpQuery(html,URL,POSTdata)
varSetCapacity(html,-1)
Gui,Add,Edit,w600 +Wrap r25,% html
Gui,Show
Return
GuiClose:
GuiEscape:
ExitApp
答案 0 :(得分:0)
httpquery只在某些时候起作用。我的建议,使用内置的WinHttpRequest对象。需要最新版本的AHK。此外,您似乎想要传递URL参数而不是发布数据。
param := "hello"
msgbox, % url_tovar("http://fischgeek.com/playground/dbfree-test/?q=" param)
url_tovar(URL) {
WebRequest := ComObjCreate("WinHttp.WinHttpRequest.5.1")
WebRequest.Open("GET", URL)
WebRequest.Send()
res := WebRequest.ResponseText
return res
}
这也可以处理发布数据。如果你有兴趣,我将不得不花点时间提供一个例子。