Hi,
When I call a web API from another web API within the same server, the external url parameter value of the final web API iin the httppost request doesn't seem to work but I have to give the localhost url - like this :localhost:8080/.../webapiname. Why is that and will this work in all environments? I understand it is not ideal to call this way, but I a little confused as to why the direct url is not working.
Discussion posts and replies are publicly visible
I'm assuming this is for an on-premise installation? In the cloud, you can call an Appian API from within Appian with no issues.
Yes, that's right, this is for on-premise.
What error do you get when you use a direct url?
This looks like an issue with local DNS resolution. I suggest to contact your sys admins.
I get timeout error :[responseCode=500, responseBody=The host did not accept the connection within timeout of 5000 ms]
I would assume something like DNS like Stefan mentioned or perhaps a firewall issue?
You tried using an FQDN and that didn't work, correct?
Yes FQDN did not work from within Appian. I tried creating an integration to call the webAPI. It does not work with the https url on the web API but works if I give like this : localhost:8080/.../ij1BEQ
Does not work from integration or another web API: https://smm-gd-uat.test.fy.com/suite/webapi/ij1BE
Works from soapUI: https://smm-gd-uat.test.fy.com/suite/webapi/ij1BE
If the FQDN doesn't work, that means the machine can't resolve that domain. As I mentioned before, there are 2 possibilites:
1. There is an issue with DNS resolution on the host machine.
2. There is a firewall preventing communication to the outside.
Mathieu Drouin, thanks for the response. I will check with network team on this and see.
This usually happens because external URLs route through DNS, public IP, and network security layers. In many setups, an SMS firewall or network firewall can block or restrict these loopback requests.
localhost works because it bypasses those layers and stays inside the server.
localhost
But this isn’t reliable for all environments, especially in cloud or microservices setups. Best practice: Avoid internal HTTP calls and use direct service communication.