View previous topic :: View next topic |
Author |
Message |
dank Newbie
Joined: 09 Jul 2001 Posts: 2 Location: Canada
|
Posted: Fri Nov 22, 2002 10:34 pm Post subject: VDSIPP - HTTP download fails if network is slow |
|
|
Hello all
I am using VDSIPP to download a small (1k) txt file from my own web site. It works great from high speed Cable Internet. It often fails (40%) when I am using a DSL Internet connection and it always fails on a 56k modem. When it fails my saved file contains the standard 404 page not found message.
Can anyone tell me how I can use HTTP to reliably download simple text files, and maybe binary files too?
My sample code is as follows
Title HTTP Download Test
rem my id is not xxxx of course
external vdsipp.dll,xxxx|Dan
%%url = http://mysite.com/myfile.dat
%%file = c:\temp\myfile.dat
INTERNET HTTP,CREATE,1
INTERNET HTTP,THREADS,1,off
INTERNET HTTP,PROTOCOL,1,1
INTERNET HTTP,USERAGENT,1,HTTPtest
INTERNET HTTP,DOWNLOAD,1,%%url,%%file
INTERNET HTTP,DESTROY,1 _________________ DanK |
|
Back to top |
|
|
Mac Professional Member
Joined: 08 Jul 2000 Posts: 1585 Location: Oklahoma USA
|
Posted: Fri Nov 22, 2002 10:40 pm Post subject: |
|
|
If you turn threads ON, you can WAIT a few seconds
for the event before using the DESTROY command.
This should wait up to 20 seconds, but will close
immediately if the download is completed before
then (adjust the WAIT time to whatever you need)...
Code: |
INTERNET HTTP,CREATE,1
INTERNET HTTP,THREADS,1,ON
INTERNET HTTP,PROTOCOL,1,1
INTERNET HTTP,USERAGENT,1,HTTPtest
%e = @event()
INTERNET HTTP,DOWNLOAD,1,%%url,%%file
WAIT EVENT, 20
INTERNET HTTP,DESTROY,1
|
Or ya might just insert a simple WAIT with threads OFF....
Cheers, Mac _________________ VDSug.dll does file IO, check/disable menu items,
non-VDS dlls, draw functions and more...
Free download (30k dll size) at:
http://www.vdsworld.com/download.php?id=361
|
|
Back to top |
|
|
Mac Professional Member
Joined: 08 Jul 2000 Posts: 1585 Location: Oklahoma USA
|
Posted: Fri Nov 22, 2002 11:35 pm Post subject: |
|
|
BTW, your example works fine on my system as is
(except for changing the URL of course).
I have a 56k modem, but only a 28k line connection...
Cheers, Mac _________________ VDSug.dll does file IO, check/disable menu items,
non-VDS dlls, draw functions and more...
Free download (30k dll size) at:
http://www.vdsworld.com/download.php?id=361
|
|
Back to top |
|
|
dank Newbie
Joined: 09 Jul 2001 Posts: 2 Location: Canada
|
Posted: Sat Nov 23, 2002 3:08 am Post subject: |
|
|
Thank you very much for your help.
It works perfect now.
Dan _________________ DanK |
|
Back to top |
|
|
GeoTrail Valued Contributor
Joined: 18 Feb 2003 Posts: 572 Location: Bergen, Norway
|
Posted: Wed Feb 19, 2003 9:35 am Post subject: |
|
|
Is there a wayt to make a progress dialog when using the download command with VDSIPP ? _________________
|
|
Back to top |
|
|
Mac Professional Member
Joined: 08 Jul 2000 Posts: 1585 Location: Oklahoma USA
|
Posted: Wed Feb 19, 2003 9:42 am Post subject: |
|
|
Look in the help file under "HTTP client functions".
You should be able to get the file content length, and
use TRANSFERBYTES to check the current file size.
To put this in a progress bar (uses 0 - 100), do the math
to convert the file size into hundredths, then set the progress
bar accordingly...
Cheers, Mac _________________ VDSug.dll does file IO, check/disable menu items,
non-VDS dlls, draw functions and more...
Free download (30k dll size) at:
http://www.vdsworld.com/download.php?id=361
|
|
Back to top |
|
|
GeoTrail Valued Contributor
Joined: 18 Feb 2003 Posts: 572 Location: Bergen, Norway
|
Posted: Wed Feb 19, 2003 9:49 am Post subject: |
|
|
Sounds great.
Thanks alot Mac.
How does this look, see any errors?
Code: | rem This is my first go at using any extension at all with VDS.
rem I've only been using VDS for about three days now and love it more each time I use it :)
%%Title = GeoTrail Downloader
%%Version = 1.0
Title %%Title
DIALOG CREATE,%%Title,-1,0,473,110
DIALOG ADD,GROUP,GROUP1,8,8,448,48,Download File
DIALOG ADD,EDIT,EDIT1,24,16,432,24,http://www.geotrail.no/lastned/geoamp.zip
DIALOG ADD,BUTTON,BUTTON1,64,280,88,24,&Save file as
DIALOG ADD,BUTTON,BUTTON2,64,376,90,24,Start &download
DIALOG ADD,STATUS,STATUS1,Remember to click on @CHR(34)Save file as@CHR(34) before downloading.
DIALOG SHOW
DIALOG DISABLE,BUTTON2
rem Calls the extenion into memory.
EXTERNAL VDSIPP.DLL
:EVLOOP
WAIT EVENT
goto @event()
:BUTTON1BUTTON
%F = @DIRDLG(Select where you want to download the file.)
If %F
DIALOG SET,STATUS1,%F
DIALOG ENABLE,BUTTON2
DIALOG DISABLE,BUTTON1
goto EVLOOP
Else
info You MUST select where you want to download the file@cr()by clicking the @CHR(34)Save file as@CHR(34) button.
End
goto EVLOOP
:BUTTON2BUTTON
If %F
DIALOG DISABLE,BUTTON1
DIALOG DISABLE,BUTTON2
DIALOG SET,STATUS1,Download in progress...
%%URL = @dlgtext(EDIT1)
INTERNET HTTP,CREATE,1
INTERNET HTTP,THREADS,1,OFF
INTERNET HTTP,PROTOCOL,1,1
INTERNET HTTP,USERAGENT,1,"VDSWORLD Downloader"
INTERNET HTTP,DOWNLOAD,1,%%URL,%F\geoamp.zip
%S = @INTERNET(HTTP,CONTENT-LENGTH,1)
%%FileSize = @DIV(%S,1024)
INTERNET HTTP,DESTROY,1
DIALOG SET,STATUS1,Download completed!
info Download complete.@cr()@cr()The file %%URL@cr()have now been saved to@cr()%F@cr()Filesize:@cr()%%FileSize kb
DIALOG ENABLE,BUTTON1
DIALOG ENABLE,BUTTON2
goto Close
Else
info You MUST select where you want to download the file@cr()by clicking the @CHR(34)Save file as@CHR(34) button.
goto EVLOOP
End
:Close
Exit |
PS! I haven't tried to add the progressbar yet. SOunds abit too complicated at the time _________________
|
|
Back to top |
|
|
Mac Professional Member
Joined: 08 Jul 2000 Posts: 1585 Location: Oklahoma USA
|
Posted: Wed Feb 19, 2003 10:05 am Post subject: |
|
|
Not offhand, but I can barely read my own code if it's
not fresh in my memory...
One thing ya should do is indent your code - makes it easier
to read and match IF/ENDs etc. You can use whatever system
ya want - I usually indent two spaces on everything except IFs,
then I use three to keep them lined up...
Code: |
:Label
if @file(myfile)
INFO File found..
else
WARN Cannot find file...
end
|
Cheers, Mac _________________ VDSug.dll does file IO, check/disable menu items,
non-VDS dlls, draw functions and more...
Free download (30k dll size) at:
http://www.vdsworld.com/download.php?id=361
|
|
Back to top |
|
|
GeoTrail Valued Contributor
Joined: 18 Feb 2003 Posts: 572 Location: Bergen, Norway
|
Posted: Wed Feb 19, 2003 10:10 am Post subject: |
|
|
Doesn't I have matching if's and end's ?
And I'm cleaning up the code as I type _________________
|
|
Back to top |
|
|
Rubes_sw Valued Contributor
Joined: 11 Jun 2001 Posts: 625 Location: Northern Ireland
|
Posted: Wed Feb 19, 2003 10:11 am Post subject: |
|
|
Heres the Progress Bar Code:
You should put this in the timer section of your code:
e.g
change evloop to:
:evloop
wait event,1
goto @event()
:timer
rem insert code here
rem this event will be run every 1 second
goto evloop
Code: |
rem retrieve the total size to transfer
%%size = @internet(http,content-length,1)
rem retrieve the amount of bytes left to transfer
%%left = @internet(http,transferbytes,1)
%%per = @fdiv(100,%%size)
%%per1 = @fmul(%%per,%%left)
%%per2 = @format(%%per1,9.0)
rem P2 is dialog name for the progress bar
dialog set,p2,%%per2 |
Hope this helps
Nathan
Last edited by Rubes_sw on Wed Feb 19, 2003 10:13 am; edited 1 time in total |
|
Back to top |
|
|
GeoTrail Valued Contributor
Joined: 18 Feb 2003 Posts: 572 Location: Bergen, Norway
|
Posted: Wed Feb 19, 2003 10:12 am Post subject: |
|
|
Isn't it possible to diable a filemenu?
I can't seem to get that working.
I've added this after the start of the download procedure:
Code: | DIALOG DISABLE,Help |
_________________
|
|
Back to top |
|
|
Mac Professional Member
Joined: 08 Jul 2000 Posts: 1585 Location: Oklahoma USA
|
Posted: Wed Feb 19, 2003 10:16 am Post subject: |
|
|
LOL, I didn't say ya had any mismatched IF/ENDs - I was
just gettin' cross-eyed tryin' to check it with nothing indented
on the bottom half...
Cheers, Mac _________________ VDSug.dll does file IO, check/disable menu items,
non-VDS dlls, draw functions and more...
Free download (30k dll size) at:
http://www.vdsworld.com/download.php?id=361
Last edited by Mac on Wed Feb 19, 2003 10:16 am; edited 1 time in total |
|
Back to top |
|
|
GeoTrail Valued Contributor
Joined: 18 Feb 2003 Posts: 572 Location: Bergen, Norway
|
Posted: Wed Feb 19, 2003 10:16 am Post subject: |
|
|
Hi Nathan. Thanks for the code.
But how does the program know what filename to check?
Rubes_sw wrote: | Heres the Progress Bar Code:
You should put this in the timer section of your code:
e.g
change evloop to:
:evloop
wait event,1
goto @event()
:timer
rem insert code here
rem this event will be run every 1 second
goto evloop
Code: |
rem retrieve the total size to transfer
%%size = @internet(http,content-length,1)
rem retrieve the amount of bytes left to transfer
%%left = @internet(http,transferbytes,1)
%%per = @fdiv(100,%%size)
%%per1 = @fmul(%%per,%%left)
%%per2 = @format(%%per1,9.0)
rem P2 is dialog name for the progress bar
dialog set,p2,%%per2 |
Hope this helps
Nathan |
_________________
|
|
Back to top |
|
|
GeoTrail Valued Contributor
Joined: 18 Feb 2003 Posts: 572 Location: Bergen, Norway
|
Posted: Wed Feb 19, 2003 10:17 am Post subject: |
|
|
Mac wrote: | LOL, I didn't say ya had any mismatched... |
Aaa OK. he he he, sorry.
Now I'm trying to get this progress thing to work...
VDS is just so cool.
I hate myself for not trying it before now _________________
|
|
Back to top |
|
|
Mac Professional Member
Joined: 08 Jul 2000 Posts: 1585 Location: Oklahoma USA
|
Posted: Wed Feb 19, 2003 10:19 am Post subject: |
|
|
From the VDS help file:
Note: MENUs are not implemented in the same way as other dialog elements. The SET, CLEAR, HIDE, SHOW, ENABLE, DISABLE and REMOVE verbs don't work with them. Once a menu is added to a dialog it is fixed.
Copyright ©1995 - 2000 S.A.D.E. s.a.r.l. / All rights are reserved.
Cheers, Mac _________________ VDSug.dll does file IO, check/disable menu items,
non-VDS dlls, draw functions and more...
Free download (30k dll size) at:
http://www.vdsworld.com/download.php?id=361
|
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You can attach files in this forum You can download files in this forum
|
|