14910

Apigee API end point gives 503 on the browser, but a 200 on Apigee trace and curl

Question:

We use Apigee proxy to invoke our API. All works well when we test it out within Apigee trace. Also works fine with curl. But on a browser, it gives a 503. This is not consistent though, sometimes it gives a 200 on the browser too. Tried Chrome and Firefox, same behavior.

Our API still executes well though. We do not return any response, merely set the status. Any ideas on what we could try out to get a 200 on the browser?

Answer1:

Couple of things to check:

<ol><li>Check if your Browser has a DNS entry caching. Sometimes services like ELB changes the actual IPs. So caching DNS entries may result in 503. </li> <li>Another you may want to check is the difference is in the HTTP Verb used. Browsers send a GET request. But curl commands can do all. So if your service is specifically not serving GET calls you may get some server side errors. Also curl sends certain headers even if you do not explicitly send. E.g., Accept:<em>/</em> header and user-agent header etc. Check if the server is behaving differently based on those headers. </li> </ol>

Answer2:

You should look into using Chrome or Firefox extensions for this. There are two in particular which support a wide range of additional features for API developers.

For Chrome, try <a href="http://www.getpostman.com/" rel="nofollow">Postman</a>.

For Firefox, try <a href="https://addons.mozilla.org/en-US/firefox/addon/restclient/" rel="nofollow">RESTClient</a>.

Thanks.

Recommend

  • AWS Restrict access from cloudfront to load balancer
  • Using ALIAS for ELB if main website DNS manager is not Route 53
  • AWS Elastic Beanstalk - can I set the name of the scaling group?
  • AWS Elastic Beanstalk - can I set the name of the scaling group?
  • IIS 7.5 404 Error for .PDF files
  • how to load css classes from my own project specfic css in Sitecore's RAD editor?
  • Autohotkey script running program with command line arguments
  • what makes a request a new request in asp.net C#
  • Can't remove headers after they are sent
  • Salesforce Different WSDL files and when to use
  • Django model inheritance, filtering models
  • Jquery popup on mouse over of calendar control
  • Check for zero lines output from command over SSH
  • presentShareDialogWithParams posts to FB wall, but callback handler results say error
  • System.InvalidCastException: Specified cast is not valid
  • How to use JavaScript to determine whether a file exists in a directory?
  • What and where is mdimport
  • Does it make sense to call System.gc() and Thread.sleep() when working on Bitmaps?
  • Time complexity of a program which involves multiple variables
  • How do I pass the string value parameter of the selected list item from an auto-populated dropdown l
  • Checking free space on FTP server
  • How to clear text inside text field when radio button is select
  • Read a local file using javascript
  • How to avoid particles glitching together in an elastic particle collision simulator?
  • Recording logins for password protected directories
  • Splitting given String into two variables - php
  • Apache 2.4 and php-fpm does not trigger apache http basic auth for php pages
  • Get object from AWS S3 as a stream
  • Check if a string to interpolate provides expected placeholders
  • Can I have the cursor start on a particular column by default in jqgrid's edit mode?
  • Is there a mandatory requirement to switch app.yaml?
  • File upload with ng-file-upload throwing error
  • ExecuteAsync RestSharp to allow backgroundWorker CancellationPending c#
  • Revoking OAuth Access Token Results in 404 Not Found
  • AngularJs get employee from factory
  • How to set the response of a form post action to a iframe source?
  • Change div Background jquery
  • Qt: Run a script BEFORE make
  • How to get Windows thread pool to call class member function?
  • reshape alternating columns in less time and using less memory