To find the incoming content type, docs say:
request.headers["Content-Type"] # => "text/plain"
But I found by trial-and-error, that doesn't work, but this does:
request.headers["CONTENT_TYPE"]=='application/json'
So what's the most robust+portable way to do it?