I have a Delphi XE5 application that uses a simple GET command to download a file from the internet. This works pretty well most of the time but occasionally we get problems getting through customers firewalls. We often can get the file using Internet Explorer but our software fails getting through proxy/firewall. This often seems to happen when IE is set to use a script file to connect.
I'd like to have two EXE files written that will work out how best to connect by attempting to download a file from a web server. It will use Indy HTTP component try simple connection, detailes and handle digest file.,
First application: A three tab application.
First Tab: Detect:
Detect Proxy settings as automatically as possible. Read Internet Explorer settings ( especially script name if used). Read settings from our ini file (if it exists) and warn if different from Internet Explorers settings.
Have a 'Test Connection' button that, when clicked, and attempts to get the file ( we'll have a default filename url in the exe if none read from our ini file).
Ask for Username & password if authentication requires it. If file is received correctly we need to check it is correct ( It can be a HTMLfile with a known first 30 characters). If it is a html message from the proxy, we need to display it in a browser window, If IE uses a script we MUST process it.
If we succesfully received the file then store settings in an INI file in the same folder as the EXE file.
When the application starts it will read this ini file if it exists.
The ini file must hash the proxy username and password, server name & port for security.
Tab 2: Network Settings. Similar to Internet Explorer Tools/Internet Options/Connections/Lan Setup window.
We need to allow user to enter for proxy username & password, port, address, automatic connection or via script.
We can also change the address of the file to download.
We need to validate the settings and when user changes these settings them. Once set, he can switch back to Tab 1 & request the file again.
Tab 3: Log File.
Show most recent attempt to get the file. As much information as possible to help diagnose any problem. Clear on each try to get the file then display current Internet settings and all logging information. We automatically save the log file on each attempt ( append) and create it new when application starts.
A Demo application that will read and display the settings from the ini file, request the file and show it in a browser window, I can use this exe as the basis to update the source code in my application.
I need to send the first EXE to my customers to test the connection so it has to look good. On a successful test connection, they can send me back the ini file that I can use in our installation.
Thanks for reading this and I hope it makes sense.