我有一些代码,我试图重用curl上下文来执行放置请求并获取请求。经过各放置请求GET请求失败,此PHP警告:如何在PHP中执行PUT请求后重新使用cUrl上下文?
curl_exec():CURLOPT_INFILE资源已经消失,重置为默认设置
我可以使用PHP shutup运营商,但我宁愿正确地重置卷曲上下文。有谁知道如何做到这一点?我也可以使用不同的curl上下文,但我宁愿重用连接,因为应用程序发送了很多请求。我可以保持文件句柄开放,但是这似乎是一个hackish的解决方案,特别是因为这是所有的功能包,这样我就可以调用doPut,的doGet等
$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);
感谢。
对不起。在我为此问题键入的快速伪代码中犯了一个错误。我的意思是CURLOPT_HTTPGET,而不是CURLOPT_GET。 – razzard 2012-03-28 16:52:44