我下载了gSoap并为wsdl生成了源代码。我可以连接到服务器并发送请求。
但是我无法理解如何捕获像发送的字节,字节recv这样的http事件。 我阅读了这份文件http://www.cs.fsu.edu/~engelen/soapdoc2.html。
但我找不到我需要的东西。我找到了函数fsend
。据我所知,当我们向服务器发送请求时,正在执行此功能。我必须做这样的事吗?
service.fsend = Custom;
Custom
是我的回调?
我发现其他回调是ffiltersend。 据我所知,在发送请求时正在运行此功能。 我用它。 但我不明白这个方法的最后一个参数是指向size_t的指针。 当我从这个指针获取值并且偏离2时,我得到了我的实际字节数。为什么?
答案 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
文件中学习如何完成。这个文件很短。