在php页面上执行android app的表单帖子

时间:2013-05-31 13:39:01

标签: java php android http-post

我有一个运行带有几个按钮的简单php页面的Web服务器(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>

有人能指出我正确的方向吗?

编辑:

我确实得到了某个地方,但并非一路走来。

应用程序正在运行并发送命令。 Web界面仍在运行

我认为我的服务器(ubuntu)不接受我发送的信息/命令。我想我从命令端做错了。

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

如果我把它放在我的浏览器网址栏或我试过的任何其他字符串中,我不会给我一个结果,而只是带有按钮的页面。

有什么建议吗?

2 个答案:

答案 0 :(得分:2)

实际上,您无法控制这些按钮。您执行POST请求(您可能希望查看HTTP标准),并且如代码所示,只要您将任何内容传递给其键为buttonX的变量,它就会完成您想要的任务。对于POST-Requests,Java中有一个HTTP库,可以为您完成大部分工作。

[编辑:] This教程可能会有所帮助。遗憾的是,发送这样一个简单的请求并不是那么简单,特别是因为你甚至不关心答案。但是有了这些代码,我相信你能够弄明白。

[编辑2:]如果你想完成它,请查看@ FoamyGuy的答案。那堂课看起来不错,我发表评论说,与班级一起,应该立刻让你到那儿。

答案 1 :(得分:2)

我喜欢使用HttpRequest object given in this answer

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

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

您需要填写服务器的网址,以及要发送的数据的网址编码名称值对列表。我不是特别流利的PHP所以我不太明白你的服务器期望什么参数,但如果是这样data是你将它们放在哪里。如果没有,你可以给它一个空白的字符串。