InetGet issues

Recommended Posts

Tjalve 0

Tjalve 0

Im having an issue with the InetGet function and i was hoping someone could help me provide som assiatnce.

Im writing a script that monitor serveral servers and send information about performance characterics using a webbservice, to a server. I then get a dashboard of thye health of all my serverers.

To this. Ive written a simpel update program. The idee is that the program should check online for a new version and if found, dowload and install it. In testing it all works, but in practise ive run into server issues. One was that the updater program (a separte script from the main script) was crashing when trying to unzip the downloaded zip file (witch contains the new version of thne scrips and configuration for the script). This happend at ablur 60% of all the servers.

On close inspection it seems that the InetGet function doesnt download the entire file. It just downloads about 140KB of it. Therefore the unziping of the file crashes the script.

To not crash the script, i added a check to see the size of the file befor the DL and after the DL. That works of couse, but it doesnt solve the problem. I guess it has to do with firewalls and antovirus software, softaware or somthing like that. The problem is that theese servers are on infrastracture that is out of my control. Downloading the file manually trough internet explorer seems to work though.

If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag GudeHow to ask questions the smart way!

I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from.

The strange thing is that it seems to be working on some servers (including my own machine). Im also downloading a small text file (with the version information in it) and that one always download. But that might be becuase its so small perhaps. But i will try .

Also, use binary mode on the InetRead line as well. FileWrite may also be failing to write the complete file correctly if it's binary data and you're trying to write it without opening the file in binary mode. Just a thought I had.

If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag GudeHow to ask questions the smart way!

I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from.

Also, use binary mode on the InetRead line as well. FileWrite may also be failing to write the complete file correctly if it's binary data and you're trying to write it without opening the file in binary mode. Just a thought I had.

Share this post

Link to post

Share on other sites

IUtilizeScripts 0

IUtilizeScripts 0

Every time I utilize InetGet for a ZIP file, the saved file is 8kb (even when downloading from my local machine). I can manually enter the URL in IE and the file downloads properly. I have no problems downloading other filetypes such as PDF and TXT using InetGet.

Did you find a solution to this?

Share this post

Link to post

Share on other sites

exolon 0

exolon 0

Why do you call Sleep() in your script, if you're downloading synchronously (i.e. blocking until the download completes)? You haven't specified 1 for the optional "background" parameter, so presumably it is blocking as it should.

Why don't you assign the return value of the InetGet() call to a variable and check that it matches the expected size (and/or actual size)?

If the return value was zero, then have you checked the @error variable after the InetGet() call?

Hello there,
I am using the function InetGet example in the help files on a website and getting the error 13. First, I searched the help files and the forum for a list of errors to consult to no avail. I suspect this is a 400's server reply based error but it would be nice to get more info about it.
Please help, thanks.
L

Hi Guys, I need help. I have searched the forum before posting and i couldn't find anything. The code below works fine when downloading files from "http" sites, but when trying to download from "https" sites, no files are downloaded. I tried different sites and I experience the same problem everywhere. Is there something I'm missing or doing wrong? Please note that I'm not a programmer and I'm new to this. I'm just using logic wherever i can to get things done. your help will be highly appreciated.

#include <InetConstants.au3>
#include <MsgBoxConstants.au3>
#include <WinAPIFiles.au3>
; Download a file in the background.
; Wait for the download to complete.

Example()
Func Example()
; Save the downloaded file to the temporary folder.
Local $sFilePath = "d:\"
; Download the file in the background with the selected option of 'force a reload from the remote site.'
Local $hDownload = InetGet("https://en.wikipedia.org/wiki/HTTPS#/media/File:Internet2.jpg", $sFilePath& "Internet2.jpg", $INET_FORCERELOAD, $INET_DOWNLOADBACKGROUND)
; Wait for the download to complete by monitoring when the 2nd index value of InetGetInfo returns True.
Do
Sleep(250)
Until InetGetInfo($hDownload, $INET_DOWNLOADCOMPLETE)
; Retrieve the number of total bytes received and the filesize.
Local $iBytesSize = InetGetInfo($hDownload, $INET_DOWNLOADREAD)
Local $iFileSize = FileGetSize($sFilePath&"Internet2.jpg")
; Close the handle returned by InetGet.
InetClose($hDownload)
; Display details about the total number of bytes read and the filesize.
MsgBox($MB_SYSTEMMODAL, "", "The total download size: " & $iBytesSize & @CRLF & _
"The total filesize: " & $iFileSize)
; Delete the file.
;FileDelete($sFilePath)
EndFunc ;==>Example

First script here. Thanks for taking the time.
I want to download a file from my dropbox or other cloud file host and I want autoit to read the file and proceed.
Here are the references I've gone through, it's just I'm not familiar yet with autoit so I'm looking for advice:https://www.autoitscript.com/autoit3/docs/functions/InetGet.htm
https://www.autoitscript.com/autoit3/docs/functions/FileRead.htm

How would I start out downloading a text file from dropbox and if in the file there is a 1 then it will proceed with the rest of the script if there is a 0 or if the file cannot be downloaded I want it to just end.

Thank you for taking the time to read this and I apologize in advance if this seems very trivial for some but this is my first script and I'm hoping this is the correct place to ask this question.

Hey
I'm trying to use InetGet function to download multiple images from a website, some pages having three images, some pages having 4 images some of them having more...
I wrote belong codes to work with autoit and having issues when autoit find not matching url available then autoit just script stopped without any error and I just want to same all the avaialble images on the website if links are not more left then script should moves on but script just stopped...
Here is complete scenerio
I've so many webpages with random number of images are hosting on those pages, in below code, InetGet able to download first three files easily and when it reaches to 4th link that is missing on the webpage that's why script stopped just but I want autoit to download only those images those are links are available and rest of files needs to be skipped automatically for this page if on the next page 4th link of image avaiable then autoit script needs to download 4th one also.
Furthermore, please help me to download files with it's original names instead of whatever name I want to same them like in InetGet I've to give some name to the file that I'm willind to download instead of original name that is available online.
Please Help me.
Here i my code;
$File6 = @ScriptDir & "\images_source.txt"
$txt6 = FileRead($File6)
$target_source7 = _StringBetween($txt6, 'src="', '"')
if Not @error Then
InetGet ( $target_source7[0], @ScriptDir & '\Description\Image1.jpg'); 1st image download coz link is available
InetGet ( $target_source7[1], @ScriptDir & '\Description\Image2.jpg'); 2nd image download coz link is available
InetGet ( $target_source7[2], @ScriptDir & '\Description\Image3.jpg'); 3rd image download coz link is available
InetGet ( $target_source7[3], @ScriptDir & '\Description\Image4.jpg'); 4th image not able to download coz link is not available and script just stopped
EndIf