Returns the decoded body by utf-8 if application/json with the given headers.
Else, returns the decoded body by default algorithm of dart:http.
Because avoid to text garbling when header only contains 'application/json' without '; charset=utf-8'.
Convert a Date to a string parameter. A {path} parameter requires encoding,
whereas a Query parameter doesn't. To ensure a non-breaking API, we use encode to default true.
Convert a DateTime to a string parameter. A {path} parameter requires encoding,
whereas a Query parameter doesn't. To ensure a non-breaking API, we use encode to default true.