免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 6302 | 回复: 8

gsoap客户端开发请教, 先谢谢了! [复制链接]

论坛徽章:
0
发表于 2010-07-08 16:57 |显示全部楼层
本帖最后由 blue_sky 于 2010-07-09 11:36 编辑

已通过客户端连接服务器生成开发需要的文件, 其中soapStub.h文件内容如下:
/* soapStub.h
   Generated by gSOAP 2.7.17 from yzzx.h
   Copyright(C) 2000-2010, Robert van Engelen, Genivia Inc. All Rights Reserved.
   This part of the software is released under one of the following licenses:
   GPL, the gSOAP public license, or Genivia's license for commercial use.
*/

#ifndef soapStub_H
#define soapStub_H
#define SOAP_NAMESPACE_OF_ns1   "http://tempuri.org/"
#include "stdsoap2.h"
#ifdef __cplusplus
extern "C" {
#endif

/******************************************************************************\
*                                                                            *
* Enumerations                                                               *
*                                                                            *
\******************************************************************************/


/******************************************************************************\
*                                                                            *
* Types with Custom Serializers                                              *
*                                                                            *
\******************************************************************************/


/******************************************************************************\
*                                                                            *
* Classes and Structs                                                        *
*                                                                            *
\******************************************************************************/


#if 0 /* volatile type: do not declare here, declared elsewhere */

#endif

#ifndef SOAP_TYPE__ns1__YZZXService_USCORE_USCORE_USCOREYZZXInterface
#define SOAP_TYPE__ns1__YZZXService_USCORE_USCORE_USCOREYZZXInterface (7)
/* ns1:YZZXService___YZZXInterface */
struct _ns1__YZZXService_USCORE_USCORE_USCOREYZZXInterface
{
        char *AInvoice; /* required element of type xsd:string */
};
#endif

#ifndef SOAP_TYPE__ns1__YZZXService_USCORE_USCORE_USCOREYZZXInterfaceResponse
#define SOAP_TYPE__ns1__YZZXService_USCORE_USCORE_USCOREYZZXInterfaceResponse (8
)
/* ns1:YZZXService___YZZXInterfaceResponse */
struct _ns1__YZZXService_USCORE_USCORE_USCOREYZZXInterfaceResponse
{
        char *Result;   /* SOAP 1.2 RPC return element (when namespace qualified
) */    /* required element of type xsd:string */
        char *AInvoice; /* required element of type xsd:string */
};
#endif

#ifndef SOAP_TYPE___ns1__YZZXInterface
#define SOAP_TYPE___ns1__YZZXInterface (12)
/* Operation wrapper: */
struct __ns1__YZZXInterface
{
        struct _ns1__YZZXService_USCORE_USCORE_USCOREYZZXInterface *ns1__YZZXSer
vice_USCORE_USCORE_USCOREYZZXInterface; /* optional element of type ns1:YZZXServ
ice___YZZXInterface */
};
#endif

#ifndef SOAP_TYPE_SOAP_ENV__Header
#define SOAP_TYPE_SOAP_ENV__Header (13)
/* SOAP Header: */
struct SOAP_ENV__Header
{
#ifdef WITH_NOEMPTYSTRUCT
        char dummy;     /* dummy member to enable compilation */
#endif
};
#endif

#ifndef SOAP_TYPE_SOAP_ENV__Code
#define SOAP_TYPE_SOAP_ENV__Code (14)
/* SOAP Fault Code: */
struct SOAP_ENV__Code
{
        char *SOAP_ENV__Value;  /* optional element of type xsdName */
        struct SOAP_ENV__Code *SOAP_ENV__Subcode;       /* optional element of t
ype SOAP-ENV:Code */
};
#endif

#ifndef SOAP_TYPE_SOAP_ENV__Detail
#define SOAP_TYPE_SOAP_ENV__Detail (16)
/* SOAP-ENVetail */
struct SOAP_ENV__Detail
{
        int __type;     /* any type of element <fault> (defined below) */
        void *fault;    /* transient */
        char *__any;
};
#endif

#ifndef SOAP_TYPE_SOAP_ENV__Reason
#define SOAP_TYPE_SOAP_ENV__Reason (19)
/* SOAP-ENV:Reason */
struct SOAP_ENV__Reason
{
        char *SOAP_ENV__Text;   /* optional element of type xsd:string */
};
#endif

#ifndef SOAP_TYPE_SOAP_ENV__Fault
#define SOAP_TYPE_SOAP_ENV__Fault (20)
/* SOAP Fault: */
struct SOAP_ENV__Fault
{
        char *faultcode;        /* optional element of type xsdName */
        char *faultstring;      /* optional element of type xsd:string */
        char *faultactor;       /* optional element of type xsd:string */
        struct SOAP_ENV__Detail *detail;        /* optional element of type SOAP
-ENVetail */
        struct SOAP_ENV__Code *SOAP_ENV__Code;  /* optional element of type SOAP
-ENV:Code */
        struct SOAP_ENV__Reason *SOAP_ENV__Reason;      /* optional element of t
ype SOAP-ENV:Reason */
        char *SOAP_ENV__Node;   /* optional element of type xsd:string */
        char *SOAP_ENV__Role;   /* optional element of type xsd:string */
        struct SOAP_ENV__Detail *SOAP_ENV__Detail;      /* optional element of t
ype SOAP-ENVetail */
};
#endif

/******************************************************************************\
*                                                                            *
* Typedefs                                                                   *
*                                                                            *
\******************************************************************************/

#ifndef SOAP_TYPE__QName
#define SOAP_TYPE__QName (5)
typedef char *_QName;
#endif

#ifndef SOAP_TYPE__XML
#define SOAP_TYPE__XML (6)
typedef char *_XML;
#endif


/******************************************************************************\
*                                                                            *
* Externals                                                                  *
*                                                                            *
\******************************************************************************/


/******************************************************************************\
*                                                                            *
* Server-Side Operations                                                     *
*                                                                            *
\******************************************************************************/


SOAP_FMAC5 int SOAP_FMAC6 __ns1__YZZXInterface(struct soap*, struct _ns1__YZZXSe
rvice_USCORE_USCORE_USCOREYZZXInterface *ns1__YZZXService_USCORE_USCORE_USCOREYZ
ZXInterface, struct _ns1__YZZXService_USCORE_USCORE_USCOREYZZXInterfaceResponse
*ns1__YZZXService_USCORE_USCORE_USCOREYZZXInterfaceResponse);

/******************************************************************************\
*                                                                            *
* Server-Side Skeletons to Invoke Service Operations                         *
*                                                                            *
\******************************************************************************/

SOAP_FMAC5 int SOAP_FMAC6 soap_serve(struct soap*);

SOAP_FMAC5 int SOAP_FMAC6 soap_serve_request(struct soap*);

SOAP_FMAC5 int SOAP_FMAC6 soap_serve___ns1__YZZXInterface(struct soap*);

/******************************************************************************\
*                                                                            *
* Client-Side Call Stubs                                                     *
*                                                                            *
\******************************************************************************/


SOAP_FMAC5 int SOAP_FMAC6 soap_call___ns1__YZZXInterface(struct soap *soap, cons
t char *soap_endpoint, const char *soap_action, struct _ns1__YZZXService_USCORE_
USCORE_USCOREYZZXInterface *ns1__YZZXService_USCORE_USCORE_USCOREYZZXInterface,
struct _ns1__YZZXService_USCORE_USCORE_USCOREYZZXInterfaceResponse *ns1__YZZXSer
vice_USCORE_USCORE_USCOREYZZXInterfaceResponse);

#ifdef __cplusplus
}
#endif

#endif

/* End of soapStub.h */


我在客户端开发的代码如下:
int CustomServ( char *Reqbuf, char *Repbuf)
{


        struct soap soap;
        char   buffer[1024];
        struct _ns1__YZZXService_USCORE_USCORE_USCOREYZZXInterface czjreqdata;
        struct _ns1__YZZXService_USCORE_USCORE_USCOREYZZXInterfaceResponse czjrepdata;
        
        memset(&czjrepdata, 0, sizeof(czjrepdata));
        memset(&czjreqdata, 0, sizeof(czjreqdata));
        memset(buffer, 0, sizeof(buffer));
        
        strcpy(buffer, Reqbuf);
        czjreqdata.AInvoice=buffer;

        soap_init1(&soap, SOAP_XML_INDENT);

        soap_call___ns1__YZZXInterface(&soap, server, "", &czjreqdata, &czjrepdata);

        if (soap.error)
        {
                soap_print_fault(&soap, stderr);
                return -1;
        }

        strcpy(Repbuf, czjrepdata.AInvoice);
        soap_destroy(&soap);
        soap_end(&soap);
        soap_done(&soap);
        return 0;
}



请教高手,我的程序调用是否正确,先谢谢了!

论坛徽章:
0
发表于 2010-07-16 17:41 |显示全部楼层
WEB  req.xml 文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
xmlnssi="http://www.w3.org/2001/XMLSchema-instance"
xmlnssd="http://www.w3.org/2001/XMLSchema"
xmlns:ns1="http://tempuri.org/">
<SOAP-ENV:Body>
   <ns1:YZZXService___YZZXInterface>
    <ns1:AInvoice></ns1:AInvoice>
   </ns1:YZZXService___YZZXInterface>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

论坛徽章:
0
发表于 2010-07-19 08:58 |显示全部楼层
我在windows下用fiddler工具,模拟向服务端发送出http报文,返回是正确的,可是用我的程序测试,返回的就不对了,还是乱码。我想问一下,我是需要进行编码设置与转换呢还是我的程序有问题呢?
自己顶一下,在线等高手解答

论坛徽章:
1
CU十二周年纪念徽章
日期:2013-10-24 15:41:34
发表于 2010-07-19 09:06 |显示全部楼层
帮你顶。

论坛徽章:
0
发表于 2010-07-27 17:39 |显示全部楼层
问题已解决!

论坛徽章:
1
双子座
日期:2014-08-29 17:15:03
发表于 2010-07-28 18:06 |显示全部楼层
LZ应该把自己的解决方法贴出来,而不是一句“已解决“。  因为别人也可能遇到你这样的问题,如果看到你这一句“已解决“估计都要拍桌子了。  来问问题的也要有共享的精神。

论坛徽章:
1
CU十二周年纪念徽章
日期:2013-10-24 15:41:34
发表于 2010-07-28 22:34 |显示全部楼层
LS说的是。

论坛徽章:
0
发表于 2010-12-01 17:23 |显示全部楼层
鄙视一下,继续等待。

论坛徽章:
0
发表于 2014-02-18 13:27 |显示全部楼层
真的挺鄙视这样结贴
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP