I'm thinking about creating a REST API for an existing pure HTTP-based web service.
Until now, clients can send HTTP POST requests to the service for retrieving data. The HTTP bodies of these requests contain something like query parameters. It is a XML dialect. These queries can often have a size of more than 30 kB.
Also, encryption is required for queries. So, the query parameters can't be transfered by HTTP GET as a query string.
My question is: does it violate the REST principle "POST changes server state", if I use HTTP POST for retrieving data?
After every retrieving action (successful or not), a log-entry is added to a logging-table in a database.
Update
So, the query parameters can't be transfered by HTTP GET as a query string
As I've learned from the comments and the answer, the query string is encrypted. But it's not recommended to transfer security sensitive data within the query string.