Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1041299
  • 博文数量: 162
  • 博客积分: 3887
  • 博客等级: 中校
  • 技术积分: 1617
  • 用 户 组: 普通用户
  • 注册时间: 2010-05-06 19:05
文章分类

全部博文(162)

文章存档

2015年(4)

2014年(7)

2013年(10)

2012年(16)

2011年(89)

2010年(36)

分类: 系统运维

2010-12-08 17:25:46

     最近用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!"
具体例子代码,可以在网上百度一下。

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

hcu55552013-07-23 15:58:24

很好很强大。。我也经常要用gsoap。。。然后非常感谢你,我说我怎么找不到那些.log文件的生成地方呢。(RECV.log等)

chinaunix网友2010-12-09 15:21:55

很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com