gsoap使用点滴


  今天不记录无聊的生活,记录技术问题,技术也是生活的一部分。gsoap探索中的点滴。

  内存管理部分:
  1、gsoap所有out出去的数据必须自己分配空间,写入数据;而in进来的数据由gsoap自动完成,我们所需的只是把in函数的返回的数据指针保存到相应位置。
  2、gsoap每次在接受数据的时候都会回收一些临时分配的动态内存,如果SOAP头,如属性表等等,所以不能指望某些数据初始化一次就可以在整个回话期间起作用,必须自己加入代码或者方法去实现这个功能。
  3、如果想让gsoap自动管理内存,就应该用soap_malloc()去分配所有的动态空间,反之自己解决。
  4、注意会话结束的时候用malloc_done()去重置soap上下文,soap_unlink()可以取消某个内存与soap的关联,soap_dealloc()可以单独释放一块被soap使用的内存。

  数据通信部分:
  1、gsoap生成的代码一般Header信息不完善,注意可能会需要手工制定Header结构,重写/修改in out default serialize等相关函数。
  2、如果接受soap信息时,忽略头部的某些信息例如mustUnderstand,则程序会返回一个忽略了需要注意的信息的错误,注意按需修改Header处理部分。
  3、gsoap生成代码时,会给PRC方法包装成一个soap元素,而元素的内容就是RPC方法的输入参数,所以对于不需要包装,或者需要自主包装的需求,则要更改.h文件中RPC方法的方法名或者参数格式。

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值