Belgian Amiga Club

HttpRequest

After a hiatus I pickud up the Amiga-C-Compiler again.
One of the building blocks of many of my projects is the web: doing a HTTP request, parsing results, use them.
Once an application is "connected" in that way, it usually becomes so much more powerfull.
That's the same for the hardware.
I long thought networking on the Amiga was a gimmick, on of those "because-you-can" things that you fiddle with, get it working and hardly use after that.
But after you walked the upgrade-your-amiga-to-beast-mode path, networking is the main component that makes an Amiga fun to use.
Things like Samba shares, VNC, Synergy, streaming audio players, ... are just AWESOME on a high-spec amiga.

So today I finally managed to compile a program that does HTTP requests.
Yay, it even handles large binary files pretty well.
That was a nice deep dive on how HTTP works exactly on top of TCP/IP.  

Some notes.
I had to hunt for the correct include header files a lot, but I finally found them in the OS4 SDK at the Hyperion site. (It's in base.lha -> include -> netinclude)
Who knew OS4 would come in handy, right? Thank you Hyperion for still providing that kind of stuff.

Extract the files somewhere and include them in the compiler like

"sc INCLUDEDIR=NETINCLUDE:"

(where NETINCLUDE: is an assign the the location where you extracted the SDK)

Another resource I found very usefull was http://amigadev.elowar.com/ that has a hyperlinked copy of the Amiga RKM with lots of examples in C and the Amiga developer CD 2.1

S
o the next step: My program needs an interface!
At first sight that seems a bit messy on the Amiga ... you have GadTools , Boopsi, MUI classes,...
Seems like a LOT of boilerplate and hoops to jump through just to get some UI elements in the screen.
After all ... a button is just a rectangle with a label that should trigger some code when you click on it.
I think it was part of some presentation by FarbRausch where Chaos (I think) was giving some advice on coding.
If I look back on that, that talk had a great impact on the way I work now.

One advice was "build your own tools" , another advice was "build your own user interface system".
That seems like a really weird advice. Why reinvent the wheel, right?
The line of thinking was that - unless you build something very generic - you spend/loose a lot of time battling other peoples framework to do exactly what you want.
All those "generic UI systems" come with a lot of overhead and stuff you don't need, exactly because they aim to be ... well ... generic.
That's also what I did with Bassoontracker: just build your own UI library that does EXACTLY what you want without overhead.
I guess that's also a nice approach for Amiga applications.
In the end I think I want something like AmigaAmp, or the "Empy" skin of Eagleplayer where clearly the custom UI is a huge reason why these programs or fun to use.

That being said: If I ever go MUI - this resource seems very interesting.
And for GadTools: here's a list of useful demo/tuturial code

Written on 30/03/2020 by Steffest


This article is part of the Wanderings in Amiga dev-land blog