gpt4 book ai didi

php - 在 PHP 中执行 PUT 请求后如何重用 cUrl 上下文?

转载 作者:可可西里 更新时间:2023-10-31 23:08:46 24 4
gpt4 key购买 nike

我有一些代码试图重用 curl 上下文来执行放置请求和获取请求。在每次放置请求后,获取请求都会失败并显示此 PHP 警告:

curl_exec(): CURLOPT_INFILE resource has gone away, resetting to default

我可以使用 PHP 关闭运算符,但我更愿意正确地重置 curl 上下文。有谁知道如何做到这一点?我也可以使用不同的 curl 上下文,但我宁愿重用连接,因为应用程序正在发送大量请求。我可以让文件句柄保持打开状态,但这似乎是一个 hackish 解决方案,尤其是因为这一切都包含在函数中,所以我可以调用 doPutdoGet

$curlContext = curl_init();
$fh = fopen('someFile.txt', 'rw');
curl_setopt($curlContext, CURLOPT_URL, $someUrl);
curl_setopt($curlContext, CURLOPT_PUT, TRUE);
curl_setopt($curlContext, CURLOPT_INFILE, $fh);
curl_setopt($curlContext, CURLOPT_INFILESIZE, $size);
$curl_response1 = curl_exec($curlContext);
fclose($fh);
curl_setopt($curlContext, CURLOPT_PUT, FALSE);
curl_setopt($curlContext, CURLOPT_HTTPGET, TRUE);
curl_setopt($curlContext, CURLOPT_URL, $someOtherUrl);
$curl_response1 = curl_exec($curlContext);

谢谢。

最佳答案

从 PHP 5.5 开始,curl_reset可用于重置所有先前设置的选项。

对于 PHP < 5.5,Li-chih Wu 的解决方案是一种可能的解决方法。

关于php - 在 PHP 中执行 PUT 请求后如何重用 cUrl 上下文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9896727/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com