我刚接触cURL和服务器发送事件。我知道如何使用cURL构建简单的GET
,POST
请求并获取响应。理论上我知道服务器发送事件是通过创建事件源的监听器来处理的,但我不确定如何使用cURL验证任何此类API。 感谢您的任何指导。
我刚接触cURL和服务器发送事件。我知道如何使用cURL构建简单的GET
,POST
请求并获取响应。理论上我知道服务器发送事件是通过创建事件源的监听器来处理的,但我不确定如何使用cURL验证任何此类API。 感谢您的任何指导。
curl -N http://127.0.0.1/path/to/clock.php
-N
停止任何缓冲,因此数据会按接收到的方式显示。)data:2015-07-07 06:19:27
data:2015-07-07 06:19:28
data:2015-07-07 06:19:29
data:2015-07-07 06:19:30
data:2015-07-07 06:19:31
data:2015-07-07 06:19:32
--verbose
,它将显示发送的头部和接收到的头部。curl -N --cookie cookies.txt http://127.0.0.1/path/to/clock.php
<?php
set_time_limit(0);
header("Content-type: text/event-stream");
while(1){
echo "data:" . date("Y-m-d H:i:s") . "\n\n";
@ob_flush();flush();
sleep(1);
}
为了完整起见,你的curl命令应该像这样:
$ curl -N --http2 -H "Accept:text/event-stream" https://some.address.com/clocktimes
-N
参数非常重要,因为 curl 会缓存响应。因此,可能您的服务器已发送某些数据,但由于curl缓冲,这些数据没有在屏幕上呈现出来。每当您使用curl进行流传输时,都应包括此标志。-H
,因为如果您的服务器将其他协议绑定到相同的端口,则无法区分协议。-H
标头,以便服务器知道这是一个SSE请求。--http2
参数并将方案从https://
更改为http://
。