CommonC++ 应用之二:使用Get访问HTTP服务器

转自 guocongbin.blogspot.com

//  Copyright (C) 2001 Open Source Telecom Corporation.
//   
//  This program is free software; you can redistribute it and/or modify
//  it under the terms of the GNU General Public License as published by
//  the Free Software Foundation; either version 2 of the License, or
//  (at your option) any later version.
//  
//  This program is distributed in the hope that it will be useful,
//  but WITHOUT ANY WARRANTY; without even the implied warranty of
//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//  GNU General Public License for more details.
//
//  You should have received a copy of the GNU General Public License
//  along with this program; if not, write to the Free Software 
//  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
//  
//  As a special exception to the GNU General Public License, permission is 
//  granted for additional uses of the text contained in its release 
//  of Common C++.
//  
//  The exception is that, if you link the Common C++ library with other
//  files to produce an executable, this does not by itself cause the
//  resulting executable to be covered by the GNU General Public License.
//  Your use of that executable is in no way restricted on account of
//  linking the Common C++ library code into it.
//
//  This exception does not however invalidate any other reasons why
//  the executable file might be covered by the GNU General Public License.
//
//  This exception applies only to the code released under the 
//  name Common C++.  If you copy code from other releases into a copy of
//  Common C++, as the General Public License permits, the exception does
//  not apply to the code that you add in this way.  To avoid misleading
//  anyone as to the status of such modified files, you must delete
//  this exception notice from them.
//  
//  If you write modifications of your own for Common C++, it is your choice
//  whether to permit this exception to apply to your modifications.
//  If you do not wish that, delete this exception notice.

#include 
< cc ++/ common.h >
#include 
< iostream >
#include 
< cstdlib >

#ifdef  CCXX_NAMESPACES
using namespace std;
using namespace ost;
#endif

class  myURLStream :  public  URLStream
{
    
private :
        
void  httpHeader( const   char   * header,  const   char   * value) 
        {       
            cout 
<<   " HEADER  "   <<  header  <<   " = "   <<  value  <<  endl;
        }       
};
int  main( int  argc,  char   ** argv)
{
    myURLStream url;
    
char  cbuf[ 1024 ];
    URLStream::Error status;
    
int  len;

    
const   char *  addr  =   " http://www.webservicex.net/globalweather.asmx/GetWeather?CityName=beijing&CountryName=china " ;
#ifdef  CCXX_EXCEPTIONS
    
try
    {
#endif
        status 
=  url.get(addr);
        
if (status)
        {
            cout 
<<   " failed; reason= "   <<  status  <<  endl;
            url.close();
        }
        
else {
            cout 
<<   " loading... "   <<  endl;
            
while ( ! url.eof())
            {
                url.read(cbuf, sizeof(cbuf));
                len 
=  url.gcount();
                
if (len  >   0 )
                    cout.write(cbuf, len);
            }
            url.close();
            cout 
<<  ends;
        }
#ifdef  CCXX_EXCEPTIONS
    }
    
catch (...)
    {
        cerr 
<<   " url  "   <<  addr  <<   "  failed "   <<  endl;
    }
#endif
    
return   0 ;
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值