One of the reasons is that the version of OpenEdge that you use is very old and you need to do "hardcore" socket coding for such stuff. Don't know whether OE 10.2B already supports the .NET integration. If it does, as an alternative you could also use the .NET HttpRequest object direct from within the ABL.