GET Request with body

Hi,

I had a GET backend service with the body and it works fine, what I’m trying to do is to create a proxy API in the gateway however every time I send a get request with the body, the gateway API responds with 408 Request Timeout status code and “Downtime exception: Read timed out” in the response body.

Does anyone know how to get this work?

Thanks

This usually means that the API Gateway is calling an incorrect native (i.e., backend) endpoint.

  1. Compare the native endpoint URL as seen on the API in the GW, against your actual backend server
  2. Check the endpoint configuration in your Routing policy
  3. Check your Load Balancer configuration in the GW Administration settings

KM

For HTTP purists, GET is not supposed to have a body. Fielding has noted from his perspective there is no valid scenario in which GET should have a body. “So, yes, you can send a body with GET, and no, it is never useful to do so.”

There is some interesting discussion about this at rest - HTTP GET with request body - Stack Overflow

An item there notes: “…sending a payload body on a GET request might cause some existing implementations to reject the request.”

I recently had been working with a GET that had a body. Using API GW and an internal IS as the host of the “native” service. I could not determine which of them was dropping the body. I switched to have it use POST so did not dig further. But it would be interesting to know if GW and the rest directive path of IS can be coerced to pass the body (as a stream) to the _get/_default service, if indeed one of them is ignoring it.

2 Likes

I overlooked that part of the question; thanks Rob. I’ll get back if I find more.

KM