在php页面上从android应用程序执行表单post


Execute a form post from android app on a php page

我有一个web服务器运行一个简单的php页面与几个按钮(12345678)这些按钮通过arduino来控制我家里的灯。

现在我想创建一个简单的应用程序来控制这些按钮。PHP脚本如下:

<?php if (isset($_POST['button1'])) { shell_exec('screen -S led -X stuff 1'); } ?>
<?php if (isset($_POST['button2'])) { shell_exec('screen -S led -X stuff 2'); } ?>
<?php if (isset($_POST['button3'])) { shell_exec('screen -S led -X stuff 3'); } ?>
<?php if (isset($_POST['button4'])) { shell_exec('screen -S led -X stuff 4'); } ?>
<?php if (isset($_POST['button5'])) { shell_exec('screen -S led -X stuff 5'); } ?>
<?php if (isset($_POST['button6'])) { shell_exec('screen -S led -X stuff 6'); } ?>
<?php if (isset($_POST['button7'])) { shell_exec('screen -S led -X stuff 7'); } ?>
<?php if (isset($_POST['button8'])) { shell_exec('screen -S led -X stuff 8'); } ?>
<form action="" method="post">
<button type="submit" name="button1">AV Rack</button>
<br>
<button type="submit" name="button2">Scherm bureau + LEDs</button>
<br>
<button type="submit" name="button4">Woonkamer LEDs + Beamer</button>
<br>
<button type="submit" name="button3">Buiten Achter</button>
<br>
<button type="submit" name="button5">Red LED test</button>
<br>
<button type="submit" name="button6">Error test</button>
<br>
<button type="submit" name="button7">Alles aan</button>
<br>
<button type="submit" name="button8">Alles uit</button>
</form>
谁能给我指个方向吗?编辑:

我确实到达了某个地方,但没有到达终点。

App正在正常工作并发送命令。web界面仍在运行

我想我的服务器(ubuntu)不接受我发送的info/命令。我想我在命令端做错了什么。

index.php?action=""&method="post"&type="submit"&name="button1"

如果我把它放在我的浏览器url栏或任何其他字符串,我尝试不给我一个结果,但只是与按钮的页面。

有什么建议吗?

我喜欢使用这个答案中给出的HttpRequest对象

如果您下载该类的副本并将其放入您的项目中,您可以发送这样的请求:

HttpRequest mReq = new HttpRequest();
mReq.sendPost(urlToYourServer, data);

您需要填写到服务器的url,以及要发送的数据的url编码的名称值对列表。我不是特别精通php,所以我不太明白你的服务器需要什么参数,但如果有的话,你可以把它们放在data。如果不是,你可以给它一个空白字符串

实际上你不能控制这些按钮。您执行POST-Request(您可能希望查看HTTP-Standard),正如代码所示,只要将任何内容传递给一个键为buttonX的变量,它就会完成您想要的操作。对于POST-Requests, Java中有一个HTTP库可以帮你完成大部分工作。

[编辑:]这个教程可能会有帮助。可悲的是,发送这样一个简单的请求并没有那么简单,尤其是在你甚至不关心答案的情况下。但是有了这段代码,我相信你一定能弄明白。

[Edit2:]如果你只是想完成它,看看@FoamyGuy的答案。这门课看起来不错,我发布了一个评论,结合这门课,你应该很快就能学到。