来自 Spotify 的 PHP cURL json 响应

Posted

技术标签:

【中文标题】来自 Spotify 的 PHP cURL json 响应【英文标题】:PHP cURL json response from Spotify 【发布时间】:2015-11-24 05:27:22 【问题描述】:

我正在尝试从 Spotify API 获取信息。在我的浏览器中访问此 URL 时,一切正常; https://api.spotify.com/v1/search?q=Led%20Zeppelin%20Kashmir&type=track

但是,然后我使用此代码尝试获取我刚刚获得白页的数据。我用谷歌搜索过 ***,但仍然没有雪茄。有谁知道为什么这段代码不起作用?

感谢您对此的任何帮助。

$artist = 'Led Zeppelin';
$title = 'Kashmir';

$spotifyURL = 'https://api.spotify.com/v1/search?q='.$artist.'%20'.$title.'&type=track';

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $spotifyURL);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:x.x.x) Gecko/20041107 Firefox/x.x");
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$json = curl_exec($ch);
$json = json_decode($json);
curl_close($ch);

echo '<pre>'.print_r($json, true).'</pre>';

【问题讨论】:

开启 php 错误? PHP 错误已启用。不返回任何错误。 检查页面是否重定向,如果是,curl中有一个选项来跟踪重定向。 artist$title 需要在 URL 中进行 urlencoded。在这种情况下,问题是Led Zeppelin 中的空格。 【参考方案1】:

您的网址包含空格。请改用以下行:

$spotifyURL = 'https://api.spotify.com/v1/search?q='.urlencode($artist.' '.$title).'&type=track';

【讨论】:

你完全正确!谢谢!这为我解决了。

以上是关于来自 Spotify 的 PHP cURL json 响应的主要内容,如果未能解决你的问题,请参考以下文章

我正在使用 php 通过 PHP 和客户端凭据流连接到 spotify 的 API

多参数 curl 请求 Python、Spotify API

Spotify:发布到 api/token 给出了错误的请求,但在 curl 中工作

cURL 请求 Spotify API 意外状态:415

带有 Spotify 的 OAuth 无法使用 curl 获取刷新令牌

PHP 来自PHP的HTTP POST,没有cURL