GSOAP HTTP事件回调

Gsoap Http event callback

本文关键字:回调 事件 HTTP GSOAP      更新时间:2023-10-16

我下载了gsoap并为WSDL生成了源代码。我可以连接到服务器并发送请求。

,但我不明白如何捕获诸如BYTES(Bytes recv)之类的HTTP事件。我读了此文档http://www.cs.fsu.edu/~gengelen/soapdoc2.html。

但我找不到我需要的东西。我发现功能fsend。据我了解,当我们向服务器发送请求时,正在执行此功能。我必须做这样的事情吗?

service.fsend = Custom;

Custom在哪里我的回调?

我发现其他回调是ffiltersend。据我了解,当请求发送时正在运行此功能。我用它。但是我不明白此方法中的最后一个参数是指向size_t的指针。当我从该指针中获得价值并以2的偏差为2时,我会得到我的真实字节的数量。为什么?

获取有关发送,接收到的字节数并将入站和出站消息记录到文件系统的统计信息,请使用GSOAP软件随附的"记录插件"。/p>

首先,在:

上注册插件
#include "plugin/logging.h" // this file is in the gSOAP distro path
...
soap_register_plugin(soap, logging);

然后使用这些功能为入站和出站消息设置记录目的地:

soap_set_logging_inbound(struct soap*, FILE*);
soap_set_logging_outbound(struct soap*, FILE*);

当文件描述符通过第二个参数指向打开文件时,您可以在登录之前和之后关闭该文件。使用NULL作为禁用记录的第二个参数。

获得统计数据,即消息大小字节数,使用:

soap_get_logging_stats(struct soap*, size_t *sent, size_t *recv);

第二个和第三个参数将通过此调用更新。

这也是它。

如果您想使用自己的消息处理回调,那么也许一个很好的起点是从plugin/logging.c文件中了解如何完成。此文件很短。