通常我在启动cURL时发布数据.我等待回复,解析等等......
我想简单地发布数据,而不是等待任何响应.换句话说,我可以通过cURL将数据发送到Url,并立即关闭我的连接吗?(不等待任何回复,甚至等待网址是否存在)
这不是一件普通的事情,但无论如何我都在问.
这是我到目前为止所拥有的:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $MyUrl);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_to_send);
curl_exec($ch);
curl_close($ch);
Run Code Online (Sandbox Code Playgroud)
您可以通过curl_multi_*
旨在执行多个同时请求的函数来执行此操作 - 只需触发一个请求,而不需要请求响应.
不确定如果脚本退出并且curl仍在运行会发生什么影响.
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $MyUrl);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_to_send);
$mh = curl_multi_init();
curl_multi_add_handle($mh,$ch);
$running = 'idc';
curl_multi_exec($mh,$running); // asynchronous
// don't bother with the usual cleanup
Run Code Online (Sandbox Code Playgroud)
我认为,实际上没有从远程服务器接收整个响应的唯一方法是使用CURLOPT_WRITEFUNCTION
.例如:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $MyUrl);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_to_send);
curl_setopt($ch, CURLOPT_WRITEFUNCTION, 'do_nothing');
curl_exec($ch);
curl_close($ch);
function do_nothing($curl, $input) {
return 0; // aborts transfer with an error
}
Run Code Online (Sandbox Code Playgroud)
重要笔记
CURLOPT_RETURNTRANSFER
,因为这会干扰写回调. 归档时间: |
|
查看次数: |
10261 次 |
最近记录: |