If there is any kind of fault during the OData service call that can be captures anyway using the technique I have explained.
However I am not aware of any explicit way to capture the request as it. The service developers are only exposed to the DPC/MPC classes where the request is already parsed. So here in these places you do not have access to the pure xml /json request.
However also storing/logging every simple request may slow down your application.
But if such functionality is absolutely essential in your case, I would suggest you to store the parsed payload received in the DPC methods to some custom table by some custom code. This is not different from the original XML/JSON that comes with the OData request call. Ultimately what matters to you is only the content not the format.