The sort of a request / response body is based on protocol in a service description file.
For example, the field in DynamoDB description file is "json" and each body of requests / response is JSON, whereas the field in EC2 is "ec2" and each of bodies is XML.
Then, Content-Type header follows the request body (already described #60 (comment)).
Especially the version of x-amz-json is corresponding to jsonVersion field in a service description file.
The current implementation encodes query to URL parameter, doesn't send body, and parses response as XML.
It is not valid in json-protocol services.