猿问

Curl 错误:操作被回调中止

所以我显然已经用谷歌搜索了错误 - 但 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)服务器并重新启动了它们。我发布了相当大量的数据,但在谷歌搜索中这似乎并不是触发curl_error的原因。有谁知道是什么原因造成的?它was工作得很好,然后就停止了。


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


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


拉风的咖菲猫
浏览 409回答 1
1回答

白衣染霜花

所以我找到了答案,我希望这对处于这种情况的其他人有所帮助。原因是因为该文件在服务器上丢失CURLFile(以前就在那里)。我的代码现在是这样的:&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!empty($file)&nbsp;&&&nbsp;is_file(UPLOAD_PATH.$file)){ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$post['SoundFile']&nbsp;=&nbsp;new&nbsp;CURLFile(UPLOAD_PATH.$file,$file_type,$file); &nbsp;&nbsp;&nbsp;&nbsp;}这不再产生错误。关键是它甚至在提交帖子之前就出错了,但错误本身并没有多大帮助,直到我在单独的测试脚本中将其分解并将文件元素添加回来。
随时随地看视频慕课网APP
我要回答