我正在为一个个人项目使用bandsintown API,我的php代码导致了一个错误:
400 ERROR The request could not be satisfied. Bad Request
用于某些查询。我不知道为什么,我想请人帮我修一下。谢谢!
这是我现在的代码:
$ch=curl_init();
curl_setopt($ch, CURLOPT_URL, "https://rest.bandsintown.com/artists/".$artist."/events?app_id=".$app_id);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
$headers=array();
$headers[]="Accept: application/json";
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
curl_close($ch);
这导致了相当多的艺术家出现错误,我不知道为什么。
这会导致错误的一些艺术家的例子是像BæRNS、Mæ(通过常规cURL请求具有正常结果)
curl -X GET "https://rest.bandsintown.com/artists/B%C3%98RNS/events?app_id=$app_id" -H "accept: application/json"
我最初认为这可能与非标准角色有关。
但让我认为这是另一个问题的是,Calvin Harris和其他使用标准字体的类似艺术家抛出了同样的错误(他们也能很好地处理常规的cURL请求)
curl -X GET "https://rest.bandsintown.com/artists/Calvin%20Harris/events?app_id=$app_id" -H "accept: application/json"
所以,我认为我制作php-cURL的方式可能有问题。
任何帮助都将不胜感激。再次感谢!
可能是因为您没有对$artist和$app_id进行url编码。例如,一个空间应该用+
或%20
编码,Ø
是%C3%98
,依此类推。请使用urlencode(),如果不起作用,请使用rawurlender()。