控制 Roku 盒子的脚本不起作用
Script to control Roku box not working
可以通过一个简单的 RESTful 服务从外部控制 Roku 盒子,该服务通过端口 8060 see here 上的 http 协议访问。我需要执行的命令是通过 POST 发送的,没有正文。他们提供命令行 curl 示例,例如:
$ curl -d '' http://192.168.1.134:8060/keypress/home
我需要将其编写为 PHP 脚本,它将执行一系列操作:keypress/home、launch/appid、keypress/select、keypress/right、 keypress/right、keypress/select。
请参阅下文,了解我为一个命令想出的结果。两个问题:
1) 我的 Roku 没有对此做出响应,所以我做错了什么?
2) 一个接一个发送多个 POST 请求的最佳方式是什么?
<?php
$ch = curl_init('http://192.168.1.134:8060/keypress/home');
$data = '';
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
?>
按照您尝试执行此操作的方式,您的 web/PHP 服务器应该能够直接访问您的 Roku,但通常情况并非如此。服务器是否在同一网络 192.168.1.* 上?
尝试 http://remoku.tv/ 看看您的 Roku 是否可以直接从浏览器控制。
我找到了更好的方法,客户端 javascript。
<script>
function post1() {
xhr = new XMLHttpRequest();
xhr.onload=function()
{
alert(xhr.responseText);
}
xhr.open("POST", "http://192.168.1.134:8060/keypress/home");
xhr.send();
}
</script>
<body onload="post1()">
可以通过一个简单的 RESTful 服务从外部控制 Roku 盒子,该服务通过端口 8060 see here 上的 http 协议访问。我需要执行的命令是通过 POST 发送的,没有正文。他们提供命令行 curl 示例,例如:
$ curl -d '' http://192.168.1.134:8060/keypress/home
我需要将其编写为 PHP 脚本,它将执行一系列操作:keypress/home、launch/appid、keypress/select、keypress/right、 keypress/right、keypress/select。
请参阅下文,了解我为一个命令想出的结果。两个问题:
1) 我的 Roku 没有对此做出响应,所以我做错了什么?
2) 一个接一个发送多个 POST 请求的最佳方式是什么?
<?php
$ch = curl_init('http://192.168.1.134:8060/keypress/home');
$data = '';
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
?>
按照您尝试执行此操作的方式,您的 web/PHP 服务器应该能够直接访问您的 Roku,但通常情况并非如此。服务器是否在同一网络 192.168.1.* 上?
尝试 http://remoku.tv/ 看看您的 Roku 是否可以直接从浏览器控制。
我找到了更好的方法,客户端 javascript。
<script>
function post1() {
xhr = new XMLHttpRequest();
xhr.onload=function()
{
alert(xhr.responseText);
}
xhr.open("POST", "http://192.168.1.134:8060/keypress/home");
xhr.send();
}
</script>
<body onload="post1()">