gpt4 book ai didi

cURL - 构造请求以验证服务器发送的事件

转载 作者:行者123 更新时间:2023-12-02 22:48:40 27 4
gpt4 key购买 nike

我是 cURL 和服务器发送事件的新手。我知道如何构建一个简单的GET , POST使用 cURL 请求并获得响应。此外,理论上我知道服务器发送的事件是通过创建事件源的监听器来处理的,但我不确定如何继续使用 cURL 验证任何此类 API。任何指导表示赞赏。

最佳答案

SSE 是一种基于文本的协议(protocol),curl 是一种很好的方法来准确排除连接发送的内容。命令很简单:

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

请注意它如何显示 SSE 协议(protocol)的“data:”前缀,并且还清楚地显示了双 LF。它永远运行,直到您按 ctrl-c。

唯一需要指出的是,您必须使用网络服务器;您不能通过 file://协议(protocol)运行 SSE。

如需更多核心疑难解答,请添加 --verbose ,这将显示正在发送的 header 和正在接收的 header 。

SSE 确实支持 cookie,您可以这样提供:(您首先必须准备“cookies.txt”文件):
curl -N --cookie cookies.txt http://127.0.0.1/path/to/clock.php

other answercurl documentation对于您可能要考虑使用的其他选项。如果您正在对特定浏览器中的问题进行故障排除,请使用他们的开发工具准确找出正在发送的 header ,然后您可以告诉 curl up 做同样的事情。

为了完整起见,这里是 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 - 构造请求以验证服务器发送的事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31238626/

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