我需要将curl命令运行到Linux Wowza服务器,这是我的Curl命令,需要在远程计算机上执行。
curl -X PUT --header 'Accept:application/json; charset=utf-8' http://localhost:8087/v2/servers/_defaultServer_/vhosts/_defaultVHost_/applications/mystream/actions/restart --digest -u "user:password"
这是我转换为php的卷曲
<?php
$url = 'http://localhost:8087/v2/servers/_defaultServer_/vhosts/_defaultVHost_/applications/mystream/actions/restart';
$username = 'user';
$pass = 'password';
$ch = curl_init();
curl_setopt ( $ch, CURLOPT_URL, "$url");
curl_setopt ( $ch, CURLOPT_POST, 1 );
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERNAME, "$username");
curl_setopt($ch, CURLOPT_PASSWORD, "$password")
curl_close ($ch);
?>
任何提示都有助于我解决这个问题。提前谢谢
答案 0 :(得分:2)
您不需要双引号变量。所以,例如
curl_setopt ( $ch, CURLOPT_URL, "$url");
应该是
curl_setopt ( $ch, CURLOPT_URL, $url);
其次,你需要一个curl_exec来实际让CURL请求做一些事情
curl_exec($ch);
最后,在最后,确保您可以以某种方式调试响应
if($err = curl_error($ch)) echo 'Error: ' . $err;
以下是如何添加标题
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept:application/json', 'charset=utf-8'));
您的用户名/密码设置也错误
curl_setopt($ch, CURLOPT_USERPWD, $username . ':' . $password);
答案 1 :(得分:0)
为确保您使用摘要式身份验证发出请求,我会在您的php-curl请求中包含以下选项:
curl_setopt($ch, CURLOPT_USERPWD, $username . ":" . $password);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_DIGEST);
其次,请确保在请求中包含以下标题:
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Accept:application/json; charset=utf-8',
'Content-type:application/json; charset=utf-8'
));
然后在您的Wowza安装中,确认RestInterface元素下的Server.xml configuration具有以下内容:
<AuthenticationMethod>digest</AuthenticationMethod>
最后,如果您遇到更多麻烦,可以添加以下调试元素以进一步调查您的请求的任何剩余问题(在Server-&gt; RestInterface-&gt;属性下):
<Property>
<Name>debugEnable</Name>
<Value>true</Value>
</Property>