我想更新icecast服务器元数据信息,如果我像这样手动输入到浏览器中,一切都很好:
http://IPADDRESS:PORT/admin/metadata?mount=/live&mode=updinfo&song=ARTIST+SONG+NAME我得到的XML响应是,元数据更新成功,如果我检查直播流,它真的是成功的(甚至iTunes弹出歌曲信息)。
问题是,我做了一个php脚本,应该使用cURL来执行相同的网址,但我尝试了许多方法和解决方案,但没有一个有效。有谁可以帮我?如何在php脚本中执行此URL?
谢谢!
这是我的php中的代码,它应该执行URL来更新元数据,但它不起作用:
$url = "http://IPADDRESS:PORT/admin/metadata?mount=/live&mode=updinfo&song=".urlencode($params)."";
file_put_contents($file2, $url);
$agent = 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.0.3705; .NET CLR 1.1.4322)';
$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_VERBOSE, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERAGENT, $agent);
curl_setopt($ch, CURLOPT_URL,$url);
$result=curl_exec($ch);
var_dump($result);如果我复制它并在浏览器中手动输入它,元数据会改变,但通过php脚本自动不会改变。我也尝试了http身份验证icecast,但不会工作,当我手动输入URL时,我不需要验证更改元数据。
我真的不知道还能做什么。
提前感谢您的帮助!
发布于 2015-01-27 09:36:28
你的脚本没有权限更改你的Icecast电台的元数据,因为它不有任何用户名和密码。您可以使URL查询在您的浏览器中工作,因为您之前只需提供用户名和密码。您可以使用CURLOPT_USERPWD发送用户名和密码
curl_setopt($ch, CURLOPT_USERPWD, $username.":".$password);https://stackoverflow.com/questions/28161756
复制相似问题