近期VC6.0的老项目中需要增加一个调用远程webservice的功能,尝试了gSoap,很累很累得一番折腾之后,调用是成功了,但是因为gSoap返回的数据是封装好的,但gSoap资料匮乏,很难查到怎样从这些封装里面取出数据的方法,眼睁睁看着数据返回了,却无法处理。
折腾了好久,改用了微软自己的MSSOAP,很快搞定了,方法记录如下:
1. 安装soapsdk
下载:http://download.microsoft.com/download/2/e/0/2e068a11-9ef7-45f5-820f-89573d7c4939/soapsdk.exe)
2. 下载 MSSOAP30.dll和msxml4.dll,
备用下载:https://download.csdn.net/download/zhouyingge1104/12520216
下载之后,把这两个dll放到项目的debug目录中,也就是和exe一个目录。
3. 下载webService.h文件
备用下载:
4. 写程序:
int main(int argc, char* argv[])
{
printf("Hello World!\n");
char* arc1[] = {"strXML"}; //参数名称
char* arc2[] = {"<webService><head>XXX</head><request>XXX</request></webService>"}; //参数值
CoInitialize(NULL); //设置单线程运行
int code = webService("http://11.111.111.11:9010/InterfaceTest/sDataInfrace.asmx?wsdl",
"http://tempuri.org/",
"GetSampInfo",
1,
arc1,
arc2);
CoUninitialize();
printf("code:%d \n", code);
return 0;
}
输出:
返回的是原始的字符串,这样就能在程序中直接读取并处理了。