使用gsoap代理类实现带有gsoap独立服务器的http get

时间:2012-08-30 12:38:08

标签: c++ proxy gsoap

我知道如何为gsoap普通代码实现http get,但是当我使用gsoap和soapcpp2 -i生成代码时,我没有soap_serve函数可用,我不知道如何/在何处重新实现fget / http_get回调

有没有人试过这个?

1 个答案:

答案 0 :(得分:1)

很难理解,你尝试做什么。我会给一些小的“cookbook”示例(C ++版本,但C看起来一样),我前段时间用

写的

a)编写正确的服务接口

$ cat service.h

//gsoap ns service name:    mon Simple monitor service
//gsoap ns service encoding: literal 

//gsoap ns service namespace:   http://feniksa.dnsalias.com/hlanmon.wsdl
//gsoap ns service location:    http://feniksa.dnsalias.com:8888

//gsoap ns schema namespace:    urn:mon

#import "stlvector.h"


int ns__commandsuccess(std::string secret, int commandid, bool& status);

我只创建了一个简单的soap方法:commandsuccess

b)通过soapcpp生成服务类

soapcpp2 -S -i -2 -I /usr/share/gsoap/import service.h 

请参阅soapcpp2输出

gsoap会生成很多文件。请参阅文件:monService.h和monService.cpp(mon是服务名称),另请参阅soapH.h

c)实现服务功能    对于我的例子,我添加到monService.cpp函数

int monService::commandsuccess(std::string secret, int commandid, bool &status)
{
   // some logic here
    return SOAP_OK;
}

d)查找函数发送或运行。对于我的服务,我在main.cpp中编写了这样的代码

#include "monService.h"

// other includes here

int main(int argc, char* argv[])
{
        // init code
        monService service;
       // other code here 
       service.serve();               // <- haha, i am here
      // other code
}

请参阅:https://freeman.svn.sourceforge.net/svnroot/freeman/other/trunk/gsoap