Article View: borland.public.cppbuilder.internet.web
Article #925Re: TCppWebBrowser - how to catch errors?
From: Mark Jacobs
Date: Tue, 20 Dec 2005 16:02
Date: Tue, 20 Dec 2005 16:02
53 lines
3051 bytes
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-mailReferences:
<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