- 论坛徽章:
- 0
|
我在网上找的天气预报的wsdl
我的执行过程是这样的
/usr/local/gSOAP/bin/wsdl2h -c -o web.h http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl
/usr/local/gSOAP/bin/soapcpp2 -c -C web.h
客户端程序
#include "soapH.h"
#include "ChinaStockWebServiceSoap.nsmap"
int main(int argc, char **argv) {
if ( argc != 2 ) {
printf("Usage: %s stock_code/n", argv[0]);
exit(-1);
}
struct soap soap;
soap_init(&soap);
soap_set_namespaces(&soap, namespaces);
struct _ns1__getSupportCity request;
struct _ns1__getSupportCityResponse response;
request.byProvinceName = argv[1];
printf("%s\n", request.byProvinceName);
char server[256] = {0};
strcpy(server, "http://www.webxml.com.cn/WebServices/WeatherWebService.asmx");
if ( soap_call___ns1__getSupportCity(&soap, NULL, NULL, &request, &response) == SOAP_OK ) {
int element_counter = response.getSupportCityResult->__sizestring;
int i = 0;
for ( i = 0; i < element_counter; i++ ) {
switch ( i ) {
case 0 : printf("0 : "); break;
case 1 : printf("1 : "); break;
case 2 : printf("2 : "); break;
case 3 : printf("3 : "); break;
case 4 : printf("4 : "); break;
default : break;
}
printf("%s/n", response.getSupportCityResult->string);
}
}
else
{
if(soap.error)
{
printf("==1=========1==soap error:%d ===2========2==\n", soap.error);
printf("==1=========1==soap error:%s ===2========2==\n",*soap_faultcode(&soap));
printf("==1=========1==soap error: %s ===2========2==\n", *soap_faultstring(&soap));
// result = SmsWBS_soap.error;
}
}
soap_destroy(&soap);
soap_end(&soap);
soap_done(&soap);
return 0;
}
编译:gcc -O2 -o web web.c soapC.c soapClient.c -lgsoap
可以通过
但是执行的时候打印
all
==1=========1==soap error:12 ===2========2==
==1=========1==soap error:SOAP-ENV:Receiver ===2========2==
?嗾鰾 ---> *鵤(緉0鵤劄?===2========2==
哪位大侠知道这个问题的原因啊,希望不吝赐教,
我找了好长时间也没找到原因 |
|