HTTP has a new method: QUERY. Tl;dr: GET with a body.

https://www.ietf.org/archive/id/draft-ietf-httpbis-safe-method-w-body-14.html

(Doesn’t have an RFC number yet but has been approved, will get one in a few weeks.)

#ietf

The HTTP QUERY Method

This specification defines the QUERY method for HTTP. A QUERY requests that the request target process the enclosed content in a safe and idempotent manner and then respond with the result of that processing. This is similar to POST requests but can be automatically repeated or restarted without concern for partial state changes.

@timbray *Technically* there's no spec reason that GET can't have a body as it is (as far as I remember), but when I tried it with something a lot of stuff became unhappy.
@timbray @eythian Technically you can, but technically it has no semantic meaning so you can't do anything useful with it. Any HTTP message can have a body. However only some methods allow the body to have meaning for the request. GET and DELETE don't, POST and QUERY do.
It's a layering thing in the design.
@darrel_miller
In my case I was building a thing that basically allowed throwing JSON over HTTP (normally I'd say RESTish but that has its own semantics so would just confuse things because it wasn't really that.) But we found that while our Perl stuff was fine with it, the Java libraries just couldn't handle it, and I think some load balancers also got upset. You're right that it's not very HTTPish but we were just using that as a transport layer really so the semantics wouldn't have mattered all that much.
@timbray