我正在使用这个简单的代码。
#include "gwan.h"
int main(int argc, char *argv[])
{
xbuf_t *reply = get_reply(argv), *read_buff;
read_buff = (xbuf_t*)get_env(argv, READ_XBUF);
xbuf_cat(reply, "START\n"); xbuf_ncat(reply, read_buff->ptr, read_buff->len); xbuf_cat(reply, "END\n");
// this line is important if I don't use read_buff everything seems OK
// but I need parse read_buff :(
printf("%s\n", read_buff->ptr); // this line is most important
return 200;
}
起初一切似乎都没问题
shell:〜{$ {我在seq 0 1
;做卷曲-A“” - H“TST:$ {I}”'http://test.com:8080/?read_buf.c&scp=3';完成
START
GET /?read_buf.cscp=3HTTP/1.1
Host: test.com8080
Accept: */*
TST: 0
END
START
GET /?read_buf.cscp=3HTTP/1.1
Host: test.com8080
Accept: */*
TST: 1
END
再次执行我的循环
START
GET /?read_buf.cscp=3HTTP/1.1
Host: test.com8080
Accept: */*
TST: 0
END
START
GET /?read_buf.cscp=3HTTP/1.1
Host: test.com8080
Accept: */*
TST: 1
END
再次执行我的循环
START
GET /?read_buf.cscp=3HTTP/1.1
Host: test.com8080
Accept: */*
TST: 0
END
START
GET /?read_buf.cscp=3HTTP/1.1
Host: test.com8080
Accept: */*
TST: 1
END
但是有我的问题。 TST仍为0的地方?
再次执行我的循环
START
GET /?read_buf.cscp=3HTTP/1.1
Host: test.com8080
Accept: */*
TST: 0
END
START
GET /?read_buf.cscp=3HTTP/1.1
Host: test.com8080
Accept: */*
TST: 0
END
再次执行我的循环
START
GET /?read_buf.cscp=3HTTP/1.1
Host: test.com8080
Accept: */*
TST: 0
END
START
GET /?read_buf.cscp=3HTTP/1.1
Host: test.com8080
Accept: */*
TST: 0
END
为什么呢?由于缓存?如何禁用它?
PS:servlet正在G-WAN 4.3.14上执行
答案 0 :(得分:0)
由于这个问题是在之后发布的,我们通过电子邮件回复了它,因此毫无疑问它的真正目标与所谓的技术借口相差甚远。
为了让人们受到审判,以下是我们通过电子邮件发送给该人的回复:
所有用户都会看到您的脚本正在显示的内容。
您的脚本未使用任何用户会话。在并发下,此脚本以相同的方式为所有客户端显示相同的信息。
G-WAN检测到这一点,并且这会触发其缓存,因为您的脚本很慢(可能是由于打印到控制台)。
在现实世界中不存在这样的应用程序:您将使用个性化URI参数,或POST实体甚至Cookie - 您的测试小心避免的 - 因此它无关紧要。
此外,您可能会从阅读G-WAN常见问题解答中受益:
最后,创建G-WAN不是为了与任何现有的Web框架竞争。目标只是满足我们自己项目的需求:
这里G-WAN非常适合这项任务,因为我们写这篇文章是为了正确使用它。