Gsoap Http事件回调

时间:2012-11-06 07:47:36

标签: c++ visual-c++ soap gsoap

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

但是我无法理解如何捕获像发送的字节,字节recv这样的http事件。 我阅读了这份文件http://www.cs.fsu.edu/~engelen/soapdoc2.html

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

service.fsend = Custom;

Custom是我的回调?

我发现其他回调是ffiltersend。 据我所知,在发送请求时正在运行此功能。 我用它。 但我不明白这个方法的最后一个参数是指向size_t的指针。 当我从这个指针获取值并且偏离2时,我得到了我的实际字节数。为什么?

1 个答案:

答案 0 :(得分:0)

要获取有关发送,接收的字节数以及将入站和出站消息记录到文件系统的统计信息,请使用" logging plugin"随gSOAP软件一起提供。

首先,使用以下命令注册插件:

#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文件中学习如何完成。这个文件很短。