首页 > 解决方案 > 如何修复:windows 与 android 问题上的 curl 返回

问题描述

我在 windows 和 android 上使用 curl php。在 windows PHP 版本 5.6.39 / curl 7.59.0 在 android PHP 版本 5.6.35 / curl 7.34.0

我使用 php curl 从网站中提取视频链接。我的代码是:

$ua=$_SERVER['HTTP_USER_AGENT'];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $l);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, $ua);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION  ,1);
curl_setopt($ch, CURLOPT_ENCODING, "");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt($ch, CURLOPT_TIMEOUT, 15);
$html = curl_exec($ch);
curl_close($ch);

结果我有

$video_link_windows="http://....../video.mp4";
$video_link_android="http://...../video.mp4";

这一直有效到 2 周前。现在在windows上生成的链接在windows和android上都可以,但是在android上生成的链接不再有效。我们已经在 3 个站点上遇到过这个问题。

我试图修改“用户代理”,我添加了“cookie”,但似乎没有任何效果。我试过没有

curl_setopt($ ch, CURLOPT_FOLLOWLOCATION, 1); 

或添加 curl_setopt 标头

curl_setopt($ ch, CURLOPT_HTTPHEADER, $head)

生成的链接似乎相同,但不起作用。

但是,如果我使用而不是 curl 我使用 file_get_contents

$html=file_get_contents($l);

一切都恢复正常。

有什么问题,或者我应该在 curl 代码中添加什么?

标签: phpandroidwindowscurlvideo

解决方案


推荐阅读