🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: borland.public.cppbuilder.internet.web
Article #925

Re: TCppWebBrowser - how to catch errors?

#925
From: Mark Jacobs
Date: Tue, 20 Dec 2005 16:02
53 lines
3051 bytes
Robert Turlej wrote:
> Could you help me ... because I've never do something with HTTP in builder.
> Do I need special library or builder 6 has it already?
> If you could write me here small code to take website by HTTP to analyse 
> I  will be grateful.

Hope I'm not too late to help you out. This routine should give you some idea as to how to 
implement your own version. It *does not* use any 3rd party libraries. It gets the HTML 
source code of any given URL and stores it in the file specified by fnm :-

unsigned long mjgeturlconts(AnsiString url,AnsiString fnm)
{
   char *bfr; unsigned long nmbyts=0,ba,br=1; FILE *fp; AnsiString msg;
   HINTERNET hss=InternetOpen("WhateverApp",INTERNET_OPEN_TYPE_DIRECT,NULL,NULL,0);
   if (!hss) { msg="Could not Open Internet Session"; ShowMessage(msg); return 0;}
   HINTERNET hsv=InternetOpenUrl(hss,url.c_str(),NULL,0,0,0);
   if (!hsv)
   {
     msg="Could not Open Service "+url; ShowMessage(msg);
     InternetCloseHandle(hss); return 0;
   }
   InternetQueryDataAvailable(hsv,&ba,0,0);
   if (ba==0)
   {
     msg="No Data Available at "+url; ShowMessage(msg);
     InternetCloseHandle(hss); return 0;
   }
   ba=max(10240,ba); bfr=(char *)malloc((ba+9)*sizeof(char));
   if (!bfr)
   {
     msg="Not Enough Memory - "+AnsiString(ba+9); ShowMessage(msg);
     InternetCloseHandle(hss); return 0;
   }
   fp=fopen(fnm.c_str(),"wb");
   if (!fp)
   {
     msg="Could not Open File "+fnm; ShowMessage(msg);
     free(bfr); InternetCloseHandle(hss); return 0;
   }
   while (br!=0)
   {
     InternetReadFile(hsv,bfr,ba,&br); fwrite(bfr,sizeof(char),br,fp); nmbyts+=br;
   }
   fclose(fp); InternetCloseHandle(hss); hss=NULL; free(bfr);
   return nmbyts;
}

You may need to add Borland\CBuilder5\Lib\wininet.lib or the header wininet.hpp, but you 
may not need to. HTH,

-- 
Mark Jacobs
http://www.dkcomputing.co.uk
Technical Details
Message-ID: <43a82aa5@newsgroups.borland.com>
Path: arc1-ca.pugleaf.net!g2news1.google.com!news4.google.com!border1.nntp.dca.giganews.com!border2.nntp.dca.giganews.com!nntp.giganews.com!newspeer1.nwr.nac.net!solnet.ch!solnet.ch!newsfeed.freenet.de!newsfeed00.sul.t-online.de!newsfeed01.sul.t-online.de!t-online.de!newsgroups.borland.com!not-for-mail
References: <ops03x1nilu90ivn@turli> <438f5a95$1@newsgroups.borland.com> <ops05f7tkqu90ivn@turli>

Show Full Headers
Complete Article Headers
X-Google-Thread: feeec,f570d79e87ba7680
X-Google-Attributes: gidfeeec,public
X-Google-Language: ENGLISH,ASCII-7-bit
Date: Tue, 20 Dec 2005 16:02:37 +0000
From: Mark Jacobs <http://www.jacobsm.com/mjmsg.htm?mj@critical>
User-Agent: Mozilla Thunderbird 1.0.6 (Windows/20050716)
X-Accept-Language: en-us, en
MIME-Version: 1.0
Newsgroups: borland.public.cppbuilder.internet.web
Subject: Re: TCppWebBrowser - how to catch errors?
References: <ops03x1nilu90ivn@turli> <438f5a95$1@newsgroups.borland.com> <ops05f7tkqu90ivn@turli>
In-Reply-To: <ops05f7tkqu90ivn@turli>
Content-Type: text/plain; charset=ISO-8859-2; format=flowed
Content-Transfer-Encoding: 7bit
NNTP-Posting-Host: 81.144.157.8
Message-ID: <43a82aa5@newsgroups.borland.com>
X-Trace: newsgroups.borland.com 1135094437 81.144.157.8 (20 Dec 2005 08:00:37 -0700)
Lines: 53
Path: arc1-ca.pugleaf.net!g2news1.google.com!news4.google.com!border1.nntp.dca.giganews.com!border2.nntp.dca.giganews.com!nntp.giganews.com!newspeer1.nwr.nac.net!solnet.ch!solnet.ch!newsfeed.freenet.de!newsfeed00.sul.t-online.de!newsfeed01.sul.t-online.de!t-online.de!newsgroups.borland.com!not-for-mail