我正在使用电影api(https://www.themoviedb.org/documentation/api),api每页仅给出20个结果,我想得到60,所以我对3个页面发出3个请求。 我不知道我是否必须使用json编码或解码响应,但这适用于第一个结果列表:
$url1 = "http://api.themoviedb.org/3/movie/upcoming?api_key=###&page=1&language=de";
$url2 = "http://api.themoviedb.org/3/movie/upcoming?api_key=###&page=2&language=de";
$url3 = "http://api.themoviedb.org/3/movie/upcoming?api_key=###&page=3&language=de";
$response1 = file_get_contents($url1);
$response2 = file_get_contents($url2);
$response3 = file_get_contents($url3);
echo $response1;
我不知道如何将第二个和第三个请求的结果放入'结果':
角度部分
a.filme = []; //declare an empty array
$http({
method: 'GET',
url: 'data/call-api.php'
}).then(function (response){
a.filme = response.data.results;
console.log(response.data);
},function (error){
console.log("JSON konnte nicht geladen werden: " + error.status + error.statusText);
});
api(http://api.themoviedb.org/3/movie/upcoming?api_key=###&page=1&language=de)浏览器中的响应如下所示:
提前致谢:)
答案 0 :(得分:1)
假设您只需要结果。
$url1 = "http://api.themoviedb.org/3/movie/upcoming?api_key=###&page=1&language=de";
$url2 = "http://api.themoviedb.org/3/movie/upcoming?api_key=###&page=2&language=de";
$url3 = "http://api.themoviedb.org/3/movie/upcoming?api_key=###&page=3&language=de";
//extract results from each response and merge to single array
$response1 = json_decode(file_get_contents($url1),true)["results"];
$response2 = json_decode(file_get_contents($url2),true)["results"];
$response3 = json_decode(file_get_contents($url3),true)["results"];
echo json_encode(array_merge($response1,$response2,$response3));
答案 1 :(得分:0)
如果您只是在结果列表之后,您可以使用:
$apiKey = "###";
$out = [];
for ($i = 1; $i <= 3; $i++) {
$url = "http://api.themoviedb.org/3/movie/upcoming?api_key=".$apiKey."&page=".$i."&language=de";
$response = file_get_contents($url);
if (is_array($response->results)) {
$out = array_merge($out, $response->results);
}
}
echo json_encode($out);
在角度中使用console.log(response);