Linux gsoap 访问Jira

下载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;
}
原文地址:https://www.cnblogs.com/likwo/p/1629221.html