下载gsoap-linux-2.7.tar.gz(http://gsoap2.sourceforge.net/)到/test/gsoap
解压gsoap-2.7.tar.gz
分别执行
./configure --prefix=/usr/local/gsoap
make
make install
cd /
#建立/jira文件夹
mkdir /jira
cd /jira
#http://..../jira/rpc/soap/jirasoapservice-v2?wsdl 这个是jira的wsdl文件
/usr/local/gsoap/bin/wsdl2h -c -o jira.h http://..../jira/rpc/soap/jirasoapservice-v2?wsdl
/usr/local/gsoap/bin/soapcpp2 -c jira.h
/usr/local/gsoap/bin/wsdl2h 是gsoap的安装路径
gcc -I /test/gsoap/gsoap-2.7/gsoap -o jiraclient jiraclient.c soapC.c soapClient.c /test/gsoap/gsoap-2.7/gsoap/stdsoap2.c
/test/gsoap/gsoap-2.7/gsoap ==>gsoap的下载源文件解压缩路径
遇到error,就到指定的文件里把error函数删除,直到没有错误。警告没关系。
如果编译成功,会在/jira目录里生成 jiraclient可执行文件。
-o 生成的可执行文件名。
后面的是依赖文件。
通过如下方式执行。
cd /jira
./jiraclient jiraname jirapwd
对于gcc -I /test/gsoap/gsoap-2.7/gsoap -o jiraclient jiraclient.c soapC.c soapClient.c /test/gsoap/gsoap-2.7/gsoap/stdsoap2.c
这个命令,经过测试 -I /test/gsoap/gsoap-2.7/gsoap可以省略。可以把 /test/gsoap/gsoap-2.7/gsoap/stdsoap2.c里的stdsoap2.c stdsoap2.h
复制到 /jira文件夹。这样编译命令就编程了
gcc -o jiraclient jiraclient.c soapC.c soapClient.c stdsoap2.c
下面是jiraclient.c的源代码。
--------------------
jiraclient.c
--------------------
#include "soapH.h"
#include "jirasoapservice_v2SoapBinding.nsmap"
int main(int argc, char **argv)
{
struct soap soap;
soap_init(&soap);
char *retValue;
//soapStub.h 里有soap_call_ns4__login函数,所有能调用的WebService方法都在这个文件夹里。
if(soap_call_ns4__login(&soap,NULL,NULL,argv[1],argv[2],&retValue) == SOAP_OK)
printf("%s ",retValue);
else
soap_print_fault(&soap, stderr);
soap_destroy(&soap);
soap_end(&soap);
soap_done(&soap);
retValue=null;
return 0;
}