【问题标题】:Curl error: operation aborted by callback卷曲错误:操作被回调中止
【发布时间】:2020-08-10 13:59:56
【问题描述】:

所以我显然已经用谷歌搜索了错误 - 但 PHP (PHP 7.4.4 (cli)) curl 给了我错误:

Curl error: operation aborted by callback 使用以下代码:

private function curl_post($url,$post,$file = null,$file_type = 'audio/wav'){
    $ch = curl_init($url);

    if (!empty($file)){
        $post['SoundFile'] = new CURLFile(UPLOAD_PATH.$file,$file_type,$file);
    }

    // Assign POST data
    curl_setopt($ch, CURLOPT_POST,1);
    curl_setopt($ch, CURLOPT_POSTFIELDS,$post);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

    $result = curl_exec($ch);

    if(curl_errno($ch)) echo 'Curl error: '.curl_error($ch);

    curl_close($ch);

    print'<pre>Curl (rec): '."\n";print_r($result);print'</pre>';
}

我控制了两台 (Ubuntu) 服务器并重新启动了它们。我发布了大量数据,但在 Google 搜索中,这似乎不是触发 curl_error 的原因。有谁知道是什么原因造成的?它was 工作得很好,然后就停止了。

另外将file_put_contents(time().'.txt','log'); 作为我的接收服务器的中断确实记录响应。所以它显然落在了正确的区域。

另外,我要说的是,两台服务器通过 curl 相互多次交谈(所以一个卷曲到一个,然后返回一点)。此外 - 错误 42 是 CURL 响应,但 https://curl.haxx.se/libcurl/c/libcurl-errors.html 似乎没有提供太多帮助。我尝试过相互跟踪各种调用,但看不出它为什么会中断 - 它甚至在发布/调用发生之前就出错/中断了。

【问题讨论】:

  • print_r($result);print' ~ 额外的print 是什么???
  • 只允许 HTML 输出
  • 请在,. 之后和{ 之前放置适当的空格,读取参数很糟糕
  • @Antony - 仔细看看那条线.......
  • 对不起哪一行?

标签: php curl php-curl


【解决方案1】:

所以我找到了答案,我希望这可以帮助遇到这种情况的其他人。原因是服务器上缺少CURLFile 的文件(以前在那里)。我的代码现在是:

    if (!empty($file) && is_file(UPLOAD_PATH.$file)){
        $post['SoundFile'] = new CURLFile(UPLOAD_PATH.$file,$file_type,$file);
    }

这不再产生错误。关键是它甚至在提交帖子之前就出错了,但是直到我在单独的测试脚本中将它分解并重新添加文件元素之前,错误本身并没有太大帮助。

【讨论】:

  • 谢谢。顺便说一句,if 条件的更好方法是if (empty($file) || is_file(UPLOAD_PATH.$file)){,因此如果文件名为空,它也被评估为 false。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-06
  • 2015-04-18
  • 2018-11-27
  • 1970-01-01
相关资源
最近更新 更多