为什么我的 curl 请求显示的结果与浏览器不同?

时间:2020-12-31 08:40:53

标签: php curl php-curl

不幸的是,我的 php Curl 请求(也是终端中的 curl 命令)显示的代码与在浏览器中手动打开 URL 不同。

这是我的问题:我想显示来自 https://reservierung.kinolambach.at/filmlist/?location_id=1(德国电影院)的当前可用电影 在我的网站上。当您检查网络选项卡时,该网站会向服务器发送一个带有特定日期的 url 的 ajax 调用并获得响应。通过在浏览器中调用 https://reservierung.kinolambach.at/filmlist/?location_id=1&date=4.1.2021&film_table=true 来尝试一下(由于 Covid,2021 年 1 月 4 日有可用的测试电影)

我的网站不在同一个域中运行

由于 CORS-Policy,使用 ajax 调用不起作用,所以我的第二种方法是通过 curl 从 php 加载数据。

这是我的 php 代码,它不起作用。对于我提出的每个请求,我都会得到“今天没有可用电影”的结果。似乎“今天没有可用的电影”(德语:'Für diesen Tag ist kein Programm verfügbar.')是“默认”响应。

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://reservierung.kinolambach.at/filmlist/?location_id=1&date=4.1.2021&film_table=true');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_HTTPGET, 1);
curl_setopt($ch, CURLOPT_COOKIESESSION, 0);
$result = curl_exec($ch);
echo($result);
curl_close($ch);

我尝试了几个 curl_setopt,但没有一个奏效。

这是我的问题 怎么可能,curl 显示的结果与在浏览器中调用 url 的结果不同?您甚至可以在终端中使用 curl https://reservierung.kinolambach.at/filmlist/?location_id=1&date=1.1.2021&film_table=true 我怎样才能改变这个?我想这与标题有关。

提前致谢,祝一切顺利!

1 个答案:

答案 0 :(得分:1)

curl_setopt($ch, CURLOPT_URL, 'https://reservierung.kinolambach.at/filmlist/?
location_id=1&date=4.1.2021&film_table=true');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_COOKIEFILE, 'C:/tmp/cookies.txt');
curl_setopt($ch, CURLOPT_COOKIEJAR, 'C:/tmp/cookies.txt');
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, false);

在启用 cookie 的情况下工作。作为我之前评论的第二个请求。