- 论坛徽章:
- 0
|
背景:
SOAP可以让大家共享函数,可是在c语言下使用这样的技术有很多困难。更别说在linux下使用了。gsoap是个很好的选择。
1.下载wsdl文件
2.wsdl2h -o header.h -c hello.wsdl *.wsdl
3.soapcpp2 -c header.h
4.编写程序
4.1全局
#include "soapH.h" //可以省略
#include "FaxServiceSoapBinding.nsmap" //.nsmap文件,当有多个wsdl文件时,只引入一个nsmap文件即可
4.2与其他c程序的结合
写成函数
testSoap(){
struct soap soap;
struct ns3__exampleResponse ret; //在soapH.h中找到
soap_init(&soap);
soap_set_mode(&soap, SOAP_C_UTFSTRING);
soap.userid="csefaxcn";
soap.passwd="cs070106";
if(soap_call_ns3__example(&soap, NULL, NULL, "Fax_webservice成功", &ret) == SOAP_OK) //从header.h中找到
printf("%s\n", ret._exampleReturn); //打印返回值,可能是其他的类型
else
soap_print_fault(&soap, stderr);
//如果要再调用其他程序,还要重设userid和passwd
soap_destroy(&soap);
soap_end(&soap);
return 0;
}
4.3
有些名字是从生成的.h文件中找到的如:soapH.h, header.h
5.编译
5.1gcc -o bin_name header.c soapC.c soapClient.c -lgsoap
5.2与eicon api结合
改makefile
LIBS=$(LIBDIVA) -lpthread -lgsoap $(LIBGPP) $(LIBSTDCPP) //-lgsoap是后添加的
$(CC) $(CFLAGS) $(INCLUDES) $^ $(LIBS) src/soapC.c src/soapClient.c -o $(TARGET) //src/soapC.c src/soapClient.c是后添加的
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/48467/showart_439624.html |
|