PHP cURL 400错误无法满足请求



我正在为一个个人项目使用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()。

最新更新