⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 get_types.cpp

📁 ESOAP一款专注于嵌入式的WEB SERVICE开发的软件。
💻 CPP
字号:
/////////////////////////////////////////////////////////////////////////////
// $Id: get_types.cpp,v 1.14 2001/09/11 11:45:52 rosimildo Exp $
//
// Copyright (c) 2001 Exor International Inc. All rights reserved.
//
// MODULE DESCRIPTION: 
// A simple test example to show the types supported by the embbeded SOAP toolkit.
//
// MODIFICATION/HISTORY:
//
// $Log: get_types.cpp,v $
// Revision 1.14  2001/09/11 11:45:52  rosimildo
// changed copyright from Technopoint to Exit; updated version to 0.9
//
// Revision 1.13  2001/08/14 14:21:45  rosimildo
// added dateTime to get_types example.
//
// Revision 1.12  2001/07/17 14:46:06  rosimildo
// some updates to fix some memory leaks
//
// Revision 1.11  2001/07/02 14:49:55  rosimildo
// Added new binary interface using Packet
//
// Revision 1.10  2001/06/23 15:46:28  rosimildo
// Upagrade to 2001 XML Schema.
//
//
// Created 2001/02/08 Rosimildo da Silva, ConnectTel Inc.
// [rdasilva@connecttel.com]
//
/////////////////////////////////////////////////////////////////////////////

#include <stdio.h>
#include <assert.h>
#include "soap_envelope.h"
#include "soap_transport.h"

/* must be the last include */
#ifdef MEMWATCH
#include <memwatch.h>
// must be defined one per main module
static MemWatch globalMemwatchInstance;
#endif


int main(int, char **)
{	
  esoap::Envelope env;
  env.setMethod( "getSupportedTypes" );

  // if you want to see wire data.....
  // esoap::Packet s;
  // env.serialize( s );
  // printf( "%s\n", s.data() );

  esoap::Transport *ht = esoap::TransportFactory::create( "http://localhost:8080/rpcrouter",
                                                        esoap::TransportFactory::HTTP );
  esoap::Envelope *in = ht->call( env );
  
  if( in->success() )
  {
     printf( "Complete wired data:\n\n" );
     esoap::Packet pktStr( 1024 );
     in->serialize( pktStr );
     printf( "%s\n", pktStr.c_str() );

     esoap::Method    *resp  = in->getMethod();
     esoap::Parameter *str   = resp->getParameter( "string" );
     printf( "string ==> %s\n", str->getString().c_str() );
     esoap::Parameter *b64   =  resp->getParameter( "b64" );
     unsigned long *pu = 0;
     unsigned long size = 0;
     if( b64->decode( ( const char **)&pu, &size ) )
     {
        assert( size == sizeof( long ) );
        printf( "Binary is ==> 0x%lX(hex) <==> %ld(dec)\n", *pu, *pu );
		delete pu;
     }

     esoap::Parameter *nil   = resp->getParameter( "nil" );
     if( nil && nil->isNull() )
     {
        printf( "Nil Item is received as nil.\n" );
     }
     time_t tm1 = resp->getParameter( "tm1" )->getTimeInstant();
     time_t tm2 = resp->getParameter( "tm2" )->getTimeInstant();

     printf( "dateTime --> tm1=%d,  tm2=%d\n", tm1, tm2 );
  }
  else
  {
     if( in->isFault() )
     {
        esoap::Fault *f = in->getFault();
        printf( "Fault Received: Faultcode: %s\nFaultstring:%s\n",
                 f->getCodeString().c_str(), f->getFaultString().c_str() );
     }
  }
  // to see what we received....
  // s.clear();
  // in->serialize( s );
  // printf( "%s\n", s.c_str() );
  delete in;
  delete ht;
  // just to cleanup the memory...
  delete esoap::ParameterFactory::setInstance( 0 );
  return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -