Missing GET param in self.request of PUT endpoint

I'm working on a BrowserView extension that supports both GET and PUT requests. To make iteration easier, in either case a developer can set a debug=1 GET parameter to make the response more verbose. This works fine in the GET endpoint, but the same exact code is nonfunctional in the PUT endpoint. I've tried using a few variants of self.request.form['debug'] and self.request.get('debug') etc to no avail: interestingly, the QUERY_STRING still has the value available.

Is there a particular trick to getting plone to see both the PUT body and query string, or is my best recourse to use python's url parsing to get it out of the query string directly?