我们已获准定期从其他站点复制网络摄像头图像。我们在代码的其他地方使用了 cURL 函数,但在尝试访问此图像时,我们无法访问。
我不确定发生了什么。我们用于许多其他 cURL 函数的代码如下所示:
$image = 'http://island-alpaca.selfip.com:10202/SnapShotJPEG?Resolution=640x480&Quality=Standard'
$options = array(
CURLOPT_URL => $image,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_CONNECTTIMEOUT => 120,
CURLOPT_TIMEOUT => 120,
CURLOPT_MAXREDIRS => 10
);
$ch = curl_init();
curl_setopt_array($ch, $options);
$cURL_source = curl_exec($ch);
curl_close($ch);
此代码不适用于以下 URL(网络摄像头图像),可从我们的位置在浏览器中访问该 URL:http://island-alpaca.selfip.com:10202/SnapShotJPEG?Resolution=640x480&Quality=Standard
当我运行测试 cURL 时,它似乎只是在超时长度内挂起。 $cURL_source
从来没有任何数据。
我在网上尝试了其他一些 cURL 示例,但无济于事。我假设有一种方法可以构建 cURL 请求以使其正常工作,但我尝试过的任何方法似乎都无济于事。
如有任何帮助,我们将不胜感激。
谢谢
最佳答案
我没有发现您的代码有任何问题。由于网络的不同问题,您有时会遇到错误。可以尝试在循环中等待良好的响应,以增加成功的机会。
类似于:
$image = 'http://island-alpaca.selfip.com:10202/SnapShotJPEG?Resolution=640x480&Quality=Standard';
$tries = 3; // max tries to get good response
$retry_after = 5; // seconds to wait before new try
while($tries > 0) {
$options = array(
CURLOPT_URL => $image,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_CONNECTTIMEOUT => 10,
CURLOPT_TIMEOUT => 10,
CURLOPT_MAXREDIRS => 10
);
$ch = curl_init();
curl_setopt_array($ch, $options);
$cURL_source = curl_exec($ch);
curl_close($ch);
if($cURL_source !== false) {
break;
}
else {
$tries--;
sleep($retry_after);
}
}
关于php - 无法 curl 图像。不知道该怎么办,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23636055/