How to capture full HTTP request data (headers and body) with PHP?

kingmaple picture kingmaple · May 25, 2012 · Viewed 17k times · Source

I have a problem implementing an API that works with Java, but fails to work with cURL. We've gone through everything so far and there must be something that is different between the requests that Java makes and what we make.

In PHP we can get header data by looking at $_SERVER['HTTP_*'] variables and we can get request body from file_get_contents('php://input'); But we cannot get the exact data sent from user agent to client.

Is it possible to get the full request, that user agent sends, with PHP? Headers and body included? If so, then how?

The only example I found is here, but this one gets the body the way I mentioned, while it gets headers by parsing through $_SERVER, which seems like a hack since it's never 100% of what was actually sent.

All help and tips are appreciated!

Answer

Vytautas picture Vytautas · May 25, 2012

for headers you can try apache_request_headers() and for body I dont know other method than file_get_contents('php://input');