CFX_HTTP5 is superior to CFHTTP. It doesn’t use Java DNS (which permanently caches DNS queries). Whenever CFHTTP fails to connect, it would either be due to DNS changes (which require restarting the CF service) or an SSL compatibility. CFX_HTTP honors DNS TTL. I’ve never encountered any SSL compatibility issues (due to higher TLS1.2 requirements or SNI wildcard certificates) and it has the added feature to ignore bad certs (ie, if they expire and host neglects to update it in a timely fashion.) There’s also a built-in reverse DNS function that I use to ensure that user_agents like “googlebot” aren’t fake (ie, the the reverse lookup name needs to have “googlebot” in it.) It’s also faster.
CFX_Exec enables me to use different system credentials. This is something that CFEXEC can’t do. If I need to run a command line function using different domain/username/password credentials, I can do this using CFX_Exec. It can also execute an dynamic BAT file without having to save it to the file system. It’s also faster.
The other thing that I like is that these CFX Tags work very well using Adobe ColdFusion 4, 5, 6, 7, 8, 9, 10, 11 & 2016. I’ve never had to make any updates or worry about new bugs introduced by Adobe or Java.
Lucee can’t leverage C++ tags at the moment. I wish it could as I’ve written/updated multiple libraries that use it:
- GraphicsMagick (faster, more functions, bulk processing, better image compatibility)
- WKHTMLTOPDF (faster, smaller, higher quality than CFDocument)
- CFPayment (we updated this using CFX_HTTP5 so CF9 could access PayPal & Authorize.net)
- FastCopy (command line directory/file syncing. very fast)
- CMYKDetection (faster, less flaky than CF/Java)
- Blink1 (IoT)
Authorize.Net (we couldn’t connect using CF9 w/o using CFX_HTTP5)
- GetIPIntel (API to detect proxy / VPN / bad IP)
- SparkPost (transaction/bulk mail API)
We’ve tried multiple times over the years to migrate some applications to Railo/Lucee, but lack of C++ CFX is a show stopper for us. I’d love to know how to get these CFX to work. They are the only ones that we use because they outperform CF/Java and perform additional functions that CF/Java can’t.