Article View: borland.public.cppbuilder.nativeapi
Article #3185Re: file transfur via http and wininet
From: Mike Collins
Date: Sun, 23 Jul 2006 16:18
Date: Sun, 23 Jul 2006 16:18
89 lines
4631 bytes
4631 bytes
Again Bob, thanks for the reply. It's sunday here so i posted before
settling back for BBQ. However, on further reading (couldn't resist) i
ended up at the same point as you suggested i.e. HttpOpenRequest with the
GET command. Not going to test it till tomorrow but i think that will do
the job. Also, InternetOpenUrl() looks promising. It was basically a lack
in my understanding on how the wininet apis worked and how http operates.
Now i look at it, it seems very foolish to think that the ftp functions
would work with an http connection :)
As for Indy, I'm trying to stay clear of any extra VCL's - it's a security
product that I'm finalising and I'm getting super paranoid - i want to try
and stay as close to the api's as possible - previous posts will give you a
better idea. I've had issues with indy before and the group seems a little
less active than the nativeapi so i thought i'd just stick to the wininet.
It's a GINA product and i'm getting some wired result with certain things
that should normally work but don't.
The server is our own in telehouse - we use it for web hosting as well so
the administrator is a bit anal. We've got an sftp service running but he
didn't want to go down the route of setting an plain ftp server running -
don't ask me why - these guys are always like that.
Will keep
"Bob Gonder" <notbg@notmindspring.invalid> wrote in message
news:he07c2hikkr27pbml0ioamg8s0lojmfo7e@4ax.com...
> Mike Collins wrote:
>
>>Trying to implement a live update facility and have major problems at
>>every
>>turn.
>>
>>Secondly i need to file transfer via http rather than ftp. The update
>>server is http not and ftp server. If i open an Internet connection, via
>>InternetConnect with the flag INTERNET_SERVICE_HTTP, is it possible to use
>>the ftp related wininet functions i.e. FtpSetCurrentDirectory etc or do i
>>have to use the http related ones? If so, any pointers on this.
>
> Gambit is going to suggest using Indy 9 instead of rolling your own
> HTTP handler. See recent discussion in b.p.c.internet.socket group
> "IdFTP problem". There is an example in that thread of using relative
> pathing with Indy's HTTP.
>
> I would suppose
> hR = HttpOpenRequest( hConnect, "GET",
> "relative/path/update.exe",
> NULL,NULL, types,flags,0)
> Followed by a loop of
> do{
> InternetReadFile( hR. Buffer, sizeof(Buffer),
> &dwNumberOfBytesRead );
> WriteFile( hOut, Buffer, dwNumberOfBytesRead,
> &dwNumberOfBytesWritten, NULL );
> }while( dwNumberOfBytesRead );
>
>
> As a suggestion, you might also look into InternetOpenUrl() which
> claims to be directly useable by InternetReadFile and
> InternetFindNextFile() without needing the InternetConnect().
> http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wininet/wininet/internetopenurl.asp
>
>
> The http server is on your ISP?
> You can usually FTP to the server. That's how the stuff gets there in
> the first place. Just use the ftp address you use to upload the web
> pages/files.
> Such as in your case, likely
> static char ftp[]= "ftp.softwareassociates.com";
>
> But, you would need to supply the name and password for access.
> The name and password gets you to your default directory.
> From there, I just download the relative path:
>
> FtpGetFile( hFTPSession, "changes.html", "changes.html", ...)
>
> char *from = "updates/update.exe";
> char *to = "update.exe.dnld";
>
> ff = FtpFindFirstFile( hFTPSession, from, &FindFrom,
> INTERNET_FLAG_RELOAD, NULL );
> Then check the file date, and if newer:
>
> FtpGetFile( hFTPSession, from, to, ...)
>
>
>
>
Technical Details
Message-ID:
<44c3a160$1@newsgroups.borland.com>Path:
arc1-ca.pugleaf.net!g2news2.google.com!news4.google.com!news.glorb.com!solnet.ch!solnet.ch!newsfeed01.sul.t-online.de!t-online.de!newsgroups.borland.com!not-for-mailReferences:
<44c3730e$1@newsgroups.borland.com> <he07c2hikkr27pbml0ioamg8s0lojmfo7e@4ax.com>Show Full Headers
Complete Article Headers
X-Google-Thread: 10cc67,2bdbfc0e5c446078 X-Google-Attributes: gid10cc67,public X-Google-Language: ENGLISH,ASCII-7-bit From: "Mike Collins" <its@TheBottomOfThePost.com> Newsgroups: borland.public.cppbuilder.nativeapi References: <44c3730e$1@newsgroups.borland.com> <he07c2hikkr27pbml0ioamg8s0lojmfo7e@4ax.com> Subject: Re: file transfur via http and wininet Date: Sun, 23 Jul 2006 17:18:36 +0100 Lines: 91 Organization: SDA Ltd X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.3790.2663 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.3790.2663 X-RFC2646: Format=Flowed; Original NNTP-Posting-Host: 81.2.92.14 Message-ID: <44c3a160$1@newsgroups.borland.com> X-Trace: newsgroups.borland.com 1153671520 81.2.92.14 (23 Jul 2006 09:18:40 -0700) Path: arc1-ca.pugleaf.net!g2news2.google.com!news4.google.com!news.glorb.com!solnet.ch!solnet.ch!newsfeed01.sul.t-online.de!t-online.de!newsgroups.borland.com!not-for-mail