gracefully handle empty response when parsing requests

Some APIs don't return data during PUT or DELETE. Currently, this fails with: JSONDecodeError: Expecting value: line 1 column 1 (char 0)