Chinaunix首页 | 论坛 | 博客
  • 博客访问: 49441
  • 博文数量: 12
  • 博客积分: 80
  • 博客等级: 民兵
  • 技术积分: 52
  • 用 户 组: 普通用户
  • 注册时间: 2012-08-24 11:27
文章分类
文章存档

2013年(9)

2012年(3)

分类: 系统运维

2013-07-23 15:59:07

原文地址:gsoap研究学习 作者:dagun

     最近用php apache nusoap做了一个WEB server(这个nusoap.php有点问题,需要跟gsoap客户端调试修改),客户端用gsoap linux C 做的。由于是第一次使用这个开源软件,还是遇到很多问题。在下面时间会给一个总结。
1、在遇到这类问题时候,一般需要服务端和客户端综合调试,可以把服务端接到request和发送reponse都打印出来,这样子可以具体知道服务器接收和发送的soap封装信息,有利于排除问题。
2、客户端开启debug方式
   1)、首先gsoap安装时,在./configure --prefix=/usr/local/gsoap --enable-debug
   2)、在/usr/local/gsoap/include/sdtsoap2.h文件中开启#define DEBUG
   3)、Makefile中加入-DSOAP_DEBUG //这个不加好像也可以,关键在1)步。
   4)、在当前目录下生成SENT.log、RECV.log、TEST.log日志文件
3、客户端中文乱码问题
    soap_init(&soap);
    //set charset utf-8
    soap_set_mode(&soap, SOAP_C_UTFSTRING); //客户端接收支持中文
4、如果客户端输入中文参数
    需要对字符编码转换到utf-8。
5、数据压缩问题gzip
     如果在网络通信中,数据量大,一般采取数据压缩方式,看过英文文档,关于WITH_GZIP支持gzip和deflate方式,客户端好像可以自动解压缩服务端发送过来的数据(但是此功能失败,目前对于大数据量还是非压缩方式发送)。日后解决,在更新此帖,如果有人可以解决此问题,可以留言给我。
6、对于WEB server采用http还是https方式,具体可以参考sample/ssl/代码信息。
7、编写了一个shell文件,这样子就不用手动输入产生soapC.c soapClient.c soapH.h soapStub.h文件咯
#!/bin/bash
TOOLPATH=/usr/local/gsoap/bin
TARGET=hrnmweb.h //自己定义的。
WEB=
$TOOLPATH/wsdl2h -c -o $TARGET $WEB
sleep 1
$TOOLPATH/soapcpp2 -c -C -x $TARGET
echo "The script run over!"
具体例子代码,可以在网上百度一下。

阅读(1816) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~