PUT and POST should use JSON bodies

Previously they would put information into the query string.

This behaviour is unsupported in the API, and this makes it use the well supported JSON body.