php - 无法 curl 图像。不知道该怎么办

标签 php curl

我们已获准定期从其他站点复制网络摄像头图像。我们在代码的其他地方使用了 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/

相关文章:

php - cURL - libcurl 不支持或禁用协议(protocol) https(PHP 更新后)

php - Sendgrid PHP 使用未定义常量 CURL_SSLVERSION_TLSv1_2

github - 如何使用curl 和 GraphQL updateIssueComment 突变更新 Github 中的问题或 PR 评论

php - 如何在php中显示多维数组中的值

php - 上传表单中的空字节注入(inject)

php - 在 PHP 中, 'stripcslashes' 和 'stripslashes' 之间有什么区别?

c++ - 如何(即使用什么工具)监视 Curl 发送的 header (Cookie 问题)

linux - 如何将所有流量从端口 80 重定向到 Linux 中的调试代理?

javascript - 如何根据当前用户的位置获取城市和省份

php - 如何使用删除按钮删除数据库中的行