unable to call third party website through apigee

Not applicable

We have APIGEE setup on our dev and prod clusters, where we have already deployed API proxies which are used to hit our backend services. I am trying create a new proxy, which can be used to hit a third party website (outside our domain). I tried using the service-callout policy and also setting the url directly using a JS policy, and both are getting timed out. Is there some property I have to add to the target endpoint so it can call third party websites? Below is the error showing when the error flow is triggered.

error: Execution of ServiceCallout Redirect_callout failed. Reason: timeout occurred in Redirect_callout

error.cause: timeout occurred in Redirect_callout

error.class: com.apigee.kernel.exceptions.spi.UncheckedException

0 4 355
4 REPLIES 4

Not applicable

Kindly confirm if the third party service is directly accessible. Please send a PostMan call to the third party service, the issue may probably be the accessibility of that service. If the postman call is not successful, then please coordinate with that Third party for service accessibility. However if the PostMan call is working fine; then we can further investigate the issue.

@Maroof Muhammad Mahmud Third party service is directly accessible. I built the targetURL based on the call I made through postman.

Well in that case there could be multiple reasons. First of all, please check accessibility of your target hostname from your RMP (Router & Message processor) servers. Kindly ping & telnet from RMP servers to make sure accessibility is there. You could also turn on Debugger on the RMP server [see link] and then use curl command for your target.

Not applicable

Turns out to be a trivial issue. Had to configure my API proxy so that the request passes through a proxy before hitting APIGEE server. Proxy settings were already in-place and HTTPClient.use.proxy=false because every request should not pass through proxy.

Solution. Had to add a property in my target endpoint <Property name="use.proxy">true</Property>, so all requests hitting that target endpoint will pass through the configured proxy.

Other proxies which are hitting backend server need not use proxy.